Angularjs 如何在MVC5中创建具有成员资格的新用户
我已经用mvc c在angularjs中创建了一个小演示,我想使用成员资格提供者提供一个登录工具。我已经尝试过从数据库获取记录的简单代码,但它不会从数据库返回任何用户。数据库中有用户 web.config文件中的成员身份设置:Angularjs 如何在MVC5中创建具有成员资格的新用户,angularjs,asp.net-mvc,c#-4.0,asp.net-membership,Angularjs,Asp.net Mvc,C# 4.0,Asp.net Membership,我已经用mvc c在angularjs中创建了一个小演示,我想使用成员资格提供者提供一个登录工具。我已经尝试过从数据库获取记录的简单代码,但它不会从数据库返回任何用户。数据库中有用户 web.config文件中的成员身份设置: <membership defaultProvider="AspNetSqlMembershipProvider"> <providers> <clear /> <add name="AspNetSqlMemb
<membership defaultProvider="AspNetSqlMembershipProvider">
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" maxInvalidPasswordAttempts="50" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
有人知道问题出在哪里吗?谢谢。如果您有Azure订阅,那么我建议您使用Azure AD B2C。这允许您专门为您的应用程序创建Azure广告实例。它们支持Azure广告帐户,您可以配置其他身份提供商,如Google、Facebook、MS个人帐户(outlook.com)、Linkedin等 它允许您在门户中定义自定义配置文件属性,并允许您为“新用户注册”、“编辑我的配置文件”、“密码重置”等配置布局/体验 如果您在应用程序中使用Azure AD B2C和ASP.NET标识,则无需自己注册用户。但是,如果您希望在注册后访问新用户的数据或声明,您应该能够通过修改
AccountController.cs
在myAccountController.cs
中:
public void SignUpSignIn(string redirectUrl = "")
{
// this redirect url is where the user is routed after authentication.
var default_redirectUrl = "/account/gateway";
if (string.IsNullOrWhiteSpace(redirectUrl))
{
redirectUrl = default_redirectUrl;
}
// Use the default policy to process the sign up / sign in flow
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = redirectUrl });
return;
}
// this is where the user is redirected after sign-up
public async Task<ActionResult> Gateway()
{
// if you cast the User.Identity as
// System.Security.Claims.ClaimsIdentity then you can access
// the claims from the identity provider.
var userClaims = (User.Identity as ClaimsIdentity).Claims;
var issuer_claim = userClaims.FindClaim("iss")?.Value;
var nameid_claim = userClaims.FindClaim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier")?.Value;
var audience_claim = userClaims.FindClaim("aud")?.Value;
var auth_time_claim = userClaims.FindClaim("auth_time")?.Value;
var idprovider_claim = userClaims.FindClaim("http://schemas.microsoft.com/identity/claims/identityprovider")?.Value;
var displayname_claim = userClaims.FindClaim("name")?.Value;
var objectid_claim = userClaims.FindClaim("http://schemas.microsoft.com/identity/claims/objectidentifier")?.Value;
var country_claim = userClaims.FindClaim("country")?.Value;
var newUser_claim = userClaims.FindClaim("newUser")?.Value;
var emails_claim = userClaims.FindClaim("emails")?.Value;
// Then you can use this claims as needed.
// after this navigate to your homepage or whatever makes sense.
return RedirectToAction("Index", "Home");
}
public void SignUpSignIn(字符串重定向url=”“)
{
//此重定向url是身份验证后路由用户的位置。
var default_redirectUrl=“/account/gateway”;
if(string.IsNullOrWhiteSpace(重定向URL))
{
redirectUrl=默认的\u redirectUrl;
}
//使用默认策略处理注册/登录流
HttpContext.GetOwinContext().Authentication.Challenge(新的AuthenticationProperties{RedirectUri=redirectUrl});
返回;
}
//这是用户注册后重定向的地方
公共异步任务如果您有Azure订阅,那么我建议使用Azure AD B2C。这允许您专门为您的应用程序创建Azure广告实例。它们支持Azure广告帐户,您可以配置其他身份提供商,如Google、Facebook、MS个人帐户(outlook.com)、Linkedin等
它允许您在门户中定义自定义配置文件属性,并允许您为“新用户注册”、“编辑我的配置文件”、“密码重置”等配置布局/体验
如果您在应用程序中使用Azure AD B2C和ASP.NET标识,则无需自己注册用户。但是,如果您希望在注册后访问新用户的数据或声明,您应该能够通过修改AccountController.cs
在myAccountController.cs
中:
public void SignUpSignIn(string redirectUrl = "")
{
// this redirect url is where the user is routed after authentication.
var default_redirectUrl = "/account/gateway";
if (string.IsNullOrWhiteSpace(redirectUrl))
{
redirectUrl = default_redirectUrl;
}
// Use the default policy to process the sign up / sign in flow
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = redirectUrl });
return;
}
// this is where the user is redirected after sign-up
public async Task<ActionResult> Gateway()
{
// if you cast the User.Identity as
// System.Security.Claims.ClaimsIdentity then you can access
// the claims from the identity provider.
var userClaims = (User.Identity as ClaimsIdentity).Claims;
var issuer_claim = userClaims.FindClaim("iss")?.Value;
var nameid_claim = userClaims.FindClaim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier")?.Value;
var audience_claim = userClaims.FindClaim("aud")?.Value;
var auth_time_claim = userClaims.FindClaim("auth_time")?.Value;
var idprovider_claim = userClaims.FindClaim("http://schemas.microsoft.com/identity/claims/identityprovider")?.Value;
var displayname_claim = userClaims.FindClaim("name")?.Value;
var objectid_claim = userClaims.FindClaim("http://schemas.microsoft.com/identity/claims/objectidentifier")?.Value;
var country_claim = userClaims.FindClaim("country")?.Value;
var newUser_claim = userClaims.FindClaim("newUser")?.Value;
var emails_claim = userClaims.FindClaim("emails")?.Value;
// Then you can use this claims as needed.
// after this navigate to your homepage or whatever makes sense.
return RedirectToAction("Index", "Home");
}
public void SignUpSignIn(字符串重定向url=”“)
{
//此重定向url是身份验证后路由用户的位置。
var default_redirectUrl=“/account/gateway”;
if(string.IsNullOrWhiteSpace(重定向URL))
{
redirectUrl=默认的\u redirectUrl;
}
//使用默认策略处理注册/登录流
HttpContext.GetOwinContext().Authentication.Challenge(新的AuthenticationProperties{RedirectUri=redirectUrl});
返回;
}
//这是用户注册后重定向的地方
public async Task成员身份应该有一个登录方法-请注意,ASP.NET identity替代了成员身份方法:@Brian mains我尝试了登录成员身份。ValidateUsers()方法,但我在内部总是遇到错误,它调用一个存储过程-您可以尝试使用结果调用该ASP.NET存储过程,看看它是否匹配…对@Brian的评论有进一步的建议。同时运行SQL事件探查器以查看存储过程的执行情况以及返回的结果。如果你使用的是MVC5,请查看ASP.NET标识。不推荐使用成员身份。成员身份应该有一个登录方法-请注意,ASP.NET identity替代了成员身份方法:@Brian mains我尝试了登录成员身份。ValidateUsers()方法,但我在内部总是遇到错误,它调用一个存储过程-您可以尝试使用结果调用该asp.net存储过程,并查看它是否匹配…对@Brian的评论的进一步建议。同时运行SQL事件探查器以查看存储过程的执行情况以及返回的结果。如果你使用的是MVC5,请查看ASP.NET标识。会员资格不受欢迎。