get a null exception with a variable in a list of claims
I have the code below where I create a list of claims and add some values:
string email = id_token.GetValue("unique_name").ToString();
string name = id_token.GetValue("given_name").ToString();
DataSet ds;
List<Claim> claims = new List<Claim>()
{
new Claim(ClaimTypes.Name, name),
new Claim(ClaimTypes.Email, email)
};
string roles = "select name from Roles_Table";
ds = GetDataSet(roles);
if (ds.Tables.Count > 0)
{
foreach (var row in ds.Tables(0).Rows)
claims.Add(new Claim(ClaimTypes.Role, row("name")));
}
When I want to use it like this:
ClaimsPrincipal cp = ClaimsPrincipal.Current;
var email = cp.FindFirst(ClaimTypes.Email).Value
It says email is null and I don't know why. I also tried :
var email =cp.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress").Value;
But got the same issue. However, the other values of the list are not null.
Need help please.
c# asp.net
add a comment |
I have the code below where I create a list of claims and add some values:
string email = id_token.GetValue("unique_name").ToString();
string name = id_token.GetValue("given_name").ToString();
DataSet ds;
List<Claim> claims = new List<Claim>()
{
new Claim(ClaimTypes.Name, name),
new Claim(ClaimTypes.Email, email)
};
string roles = "select name from Roles_Table";
ds = GetDataSet(roles);
if (ds.Tables.Count > 0)
{
foreach (var row in ds.Tables(0).Rows)
claims.Add(new Claim(ClaimTypes.Role, row("name")));
}
When I want to use it like this:
ClaimsPrincipal cp = ClaimsPrincipal.Current;
var email = cp.FindFirst(ClaimTypes.Email).Value
It says email is null and I don't know why. I also tried :
var email =cp.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress").Value;
But got the same issue. However, the other values of the list are not null.
Need help please.
c# asp.net
Well, theList<Claims>has probably your Claim but you are searching it in the ClaimsPrincipal.Current How do you set that?
– Steve
Nov 15 '18 at 21:47
You are right @Steve. I added the claim to ClaimsPrincipal.Currentcp.AddClaim(new Claim(ClaimTypes.Email, user.Email));and it worked.
– kst92
Nov 19 '18 at 19:38
add a comment |
I have the code below where I create a list of claims and add some values:
string email = id_token.GetValue("unique_name").ToString();
string name = id_token.GetValue("given_name").ToString();
DataSet ds;
List<Claim> claims = new List<Claim>()
{
new Claim(ClaimTypes.Name, name),
new Claim(ClaimTypes.Email, email)
};
string roles = "select name from Roles_Table";
ds = GetDataSet(roles);
if (ds.Tables.Count > 0)
{
foreach (var row in ds.Tables(0).Rows)
claims.Add(new Claim(ClaimTypes.Role, row("name")));
}
When I want to use it like this:
ClaimsPrincipal cp = ClaimsPrincipal.Current;
var email = cp.FindFirst(ClaimTypes.Email).Value
It says email is null and I don't know why. I also tried :
var email =cp.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress").Value;
But got the same issue. However, the other values of the list are not null.
Need help please.
c# asp.net
I have the code below where I create a list of claims and add some values:
string email = id_token.GetValue("unique_name").ToString();
string name = id_token.GetValue("given_name").ToString();
DataSet ds;
List<Claim> claims = new List<Claim>()
{
new Claim(ClaimTypes.Name, name),
new Claim(ClaimTypes.Email, email)
};
string roles = "select name from Roles_Table";
ds = GetDataSet(roles);
if (ds.Tables.Count > 0)
{
foreach (var row in ds.Tables(0).Rows)
claims.Add(new Claim(ClaimTypes.Role, row("name")));
}
When I want to use it like this:
ClaimsPrincipal cp = ClaimsPrincipal.Current;
var email = cp.FindFirst(ClaimTypes.Email).Value
It says email is null and I don't know why. I also tried :
var email =cp.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress").Value;
But got the same issue. However, the other values of the list are not null.
Need help please.
c# asp.net
c# asp.net
asked Nov 15 '18 at 21:43
kst92kst92
34
34
Well, theList<Claims>has probably your Claim but you are searching it in the ClaimsPrincipal.Current How do you set that?
– Steve
Nov 15 '18 at 21:47
You are right @Steve. I added the claim to ClaimsPrincipal.Currentcp.AddClaim(new Claim(ClaimTypes.Email, user.Email));and it worked.
– kst92
Nov 19 '18 at 19:38
add a comment |
Well, theList<Claims>has probably your Claim but you are searching it in the ClaimsPrincipal.Current How do you set that?
– Steve
Nov 15 '18 at 21:47
You are right @Steve. I added the claim to ClaimsPrincipal.Currentcp.AddClaim(new Claim(ClaimTypes.Email, user.Email));and it worked.
– kst92
Nov 19 '18 at 19:38
Well, the
List<Claims> has probably your Claim but you are searching it in the ClaimsPrincipal.Current How do you set that?– Steve
Nov 15 '18 at 21:47
Well, the
List<Claims> has probably your Claim but you are searching it in the ClaimsPrincipal.Current How do you set that?– Steve
Nov 15 '18 at 21:47
You are right @Steve. I added the claim to ClaimsPrincipal.Current
cp.AddClaim(new Claim(ClaimTypes.Email, user.Email)); and it worked.– kst92
Nov 19 '18 at 19:38
You are right @Steve. I added the claim to ClaimsPrincipal.Current
cp.AddClaim(new Claim(ClaimTypes.Email, user.Email)); and it worked.– kst92
Nov 19 '18 at 19:38
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53328309%2fget-a-null-exception-with-a-variable-in-a-list-of-claims%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53328309%2fget-a-null-exception-with-a-variable-in-a-list-of-claims%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Well, the
List<Claims>has probably your Claim but you are searching it in the ClaimsPrincipal.Current How do you set that?– Steve
Nov 15 '18 at 21:47
You are right @Steve. I added the claim to ClaimsPrincipal.Current
cp.AddClaim(new Claim(ClaimTypes.Email, user.Email));and it worked.– kst92
Nov 19 '18 at 19:38