I am using Asp.net MVC4 Jquery ajax and i am passing token with request headers...
Here Exception is : The provided anti-forgery token was meant for user "", but the current user is "UserName".
I have tried with answer of here Anti forgery token is meant for user "" but the current user is "username" with 3rd solution but can not succeed..
please any one help me how to achieve first 2 steps as per above answer given for it...
or any other solution please let me know...
//view
<script type="text/javascript">
var JsTokenHeaderValue = '@Utils.TokenHeaderValue()';
</script>
//Antivalidationforgery token:
private Task<HttpResponseMessage> ValidateAntiForgeryToken(HttpActionContext actionContext, CancellationToken cancellationToken, Func<Task<HttpResponseMessage>> continuation)
{
try
{
string cookieToken = "";
string formToken = "";
IEnumerable<string> tokenHeaders;
if (actionContext.Request.Headers.TryGetValues("RequestVerificationToken", out tokenHeaders))
{
string[] tokens = tokenHeaders.First().Split(':');
if (tokens.Length == 2)
{
cookieToken = tokens[0].Trim();
formToken = tokens[1].Trim();
}
}
AntiForgery.Validate(cookieToken, formToken);
}
catch (System.Web.Mvc.HttpAntiForgeryException exception)
{
ErrorLogDA.LogException(exception);
actionContext.Response = new HttpResponseMessage
{
StatusCode = HttpStatusCode.BadRequest,
RequestMessage = actionContext.ControllerContext.Request
};
return FromResult(actionContext.Response);
}
return continuation();
}
I am updating my question here the token is due to Membership class, User getting Authenticated without login.. In my case first time i am doing page load then Cookies getting value null and second time page load cookies getting the values from some where .ASPXAUTH .. thats why token issue might be.. here is my controller method for header..
//Header Partial - controller
public ActionResult UCHeader()
{
try
{
var ViewLogOnModel = new LogOnModel();
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie == null)
{
ViewLogOnModel.LoggedInUserId = Guid.Empty;
return PartialView("UCHeader", ViewLogOnModel);
}
//Is Authenticated..
if (User.Identity.IsAuthenticated == true)
{
if (User.Identity.AuthenticationType == "Forms")
{
MembershipUser memberUser = Common.Utils.GetLoggedinUserInfo(this.User.Identity.Name);
if (memberUser != null)
{
Guid userId = (Guid)memberUser.ProviderUserKey;
ViewLogOnModel.LoggedInUserId = userId;
ViewLogOnModel.UserEmail = this.User.Identity.Name;
return PartialView("UCHeader", ViewLogOnModel);
}
else
{
ViewLogOnModel.LoggedInUserId = Guid.Empty;
return PartialView("UCHeader", ViewLogOnModel);
}
}
else
{
ViewLogOnModel.LoggedInUserId = Guid.Empty;
return PartialView("UCHeader", ViewLogOnModel);
}
}
else
{
ViewLogOnModel.LoggedInUserId = Guid.Empty;
return PartialView("UCHeader", ViewLogOnModel);
}
}
catch (Exception ex)
{
ErrorLogDA.LogException(ex);
Response.Redirect("~/ErrorUiLog/Index", false);
}
return null;
}