我有一个网站,我在该网站上注册用户并为这些用户设置一些会话值。该网站还启动了Windows窗体应用程序,其中我将登录凭据传递给Windows窗体。
然后,winform应用程序使用“ HttpWebRequest”对象回调网站/服务器代码,并传递用户凭据等参数。
在我网站的页面加载功能上,我有以下代码:
if (User.Identity.IsAuthenticated)
{
Session["Name"] = "Sidd";
Session["Country"] = "India";
}
else
{
//Response.Redirect("~/About.aspx");
string email = Request.Form["Email"];
string password = Request.Form["Password"];
if(email != null && password != null)
{
var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();
var signinManager = Context.GetOwinContext().GetUserManager<ApplicationSignInManager>();
//var user = new ApplicationUser() { UserName = Email.Text, Email = Email.Text };
var result = signinManager.PasswordSignIn(email, password, isPersistent: false, shouldLockout: false);
if (result == SignInStatus.Success)
{
//Page.Response.Redirect(Page.Request.Url.ToString(), true);
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
}
}
}
public static void RedirectToReturnUrl(string returnUrl, HttpResponse response)
{
if (!String.IsNullOrEmpty(returnUrl) && IsLocalUrl(returnUrl))
{
response.Redirect(returnUrl);
}
else
{
response.Redirect("~/");
}
}
因此,上面的代码对我来说基本上重定向到根网站default.aspx
即使SigInManager结果返回成功登录状态,上面的代码仍然为我提供User.Identity.IsAuthenticated值为false的重定向。
所以我有两个问题: 1.)如何在跨域方案中验证/认证用户 2.)从Windows窗体返回网站时,如何获取用户已登录用户的会话值
任何链接,指导或建议都很棒。
在此先感谢!!! ..