我是ASP.NET MVC4的新手.我正在创建一个空的MVC4项目模板,并尝试添加ASP.NET成员资格提供程序,但我不知道我该怎么做.我在谷歌搜索,但所有演示都使用Internet应用程序项目模板.
我知道这个问题并不好,但我已经花了两天时间.
请为此目的提供一些建议或教程.
更新
根据Nesim Razon的建议,我将表单身份验证部分从MVC4 Web应用程序(Internet应用程序模板)复制并粘贴到我的空项目中.但现在我得到一个异常要调用此方法,"Membership.Provider"属性必须是"ExtendedMembershipProvider"的实例.
[InitializeSimpleMembership]
public class HomeController : Controller
{
public ActionResult Index()
{
WebSecurity.CreateUserAndAccount("Name", "Password"); // Exception is thrown from there.
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
我还在Web.config文件中添加了以下指令:
<add key="enableSimpleMembership" value="true" />
Run Code Online (Sandbox Code Playgroud) 是否有任何开源项目为asp.net会员提供商提供前端?像一个视觉工作室通过它配置暴露,但可以在生产中部署.
我希望在前端看到的一些功能的例子是
等等
我正在开发一个MVC3站点,我对ASP.NET成员资格有一个令人费解的问题.我正在使用连接到SQL Azure数据库的System.Web.Providers 1.0.1.
就像现在一样,当在Azure下正常运行时,在Compute Emulator下运行时登录我的相同用户名/密码失败.我可以看到它正在使用正确的数据库,因为正在更新成员资格数据库中的Failed Password Attempts计数器.
asp.net-membership azure membership-provider asp.net-mvc-3 azure-sql-database
有没有办法让simpleMembershipProvider使用盐?
当我创建我的mvc4 web项目并将默认连接设置为sqlexpress,然后注册,我的用户没有密码盐

我希望它尽可能安全,没有太多麻烦.
由于我们的网站无法直接使用信用卡,因此我们会将凭证和其他misc变量的用户路由到另一个网站上的"托管页面".
为了更详细,这是用户通常如何访问它:
转到我们的网站并使用他们之前创建的用户名和密码登录.这使用asp.net成员资格提供程序.
登录后,我们会向他们显示他们的帐户,并且他们有一个按钮来进行付款.一旦他们点击这个......
系统会提示他们使用"预付款"页面来验证金额和其他各种信息.他们点击这里继续......
因此,付款页面显示在我们网站的iframe中.我们使用以下代码将它们重定向到外部托管网页:
<div align ="center"> <iframe width ="100%"height ="600px"src ="@ Html.Raw(@ ViewBag.GateWayWebsite)"> </ div>
输入付款页面并且客户点击提交后,该网站会将帖子提交回我们开始的网站并传回有关费用的信息.我抓住这些信息并将其保存到我们的数据库并显示收据.
一切都很好,除了#5.这大部分时间都有效,但大约有十分之一的人回来了这条消息:
Event code: 4006
Event message: Membership credential verification failed.
Event time: 12/16/2013 4:32:22 AM
Event time (UTC): 12/16/2013 12:32:22 PM
Event ID: 42c509f2a25d46f0af17e72a52dfbbe5
Event sequence: 38
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/3/ROOT/SuburbanCustPortal-1-130316693110399868
Trust level: Full
Application Virtual Path: /SuburbanCustPortal
Application Path: C:\inetpub\wp\SuburbanCustPortal\
Machine name: WIN-OB929P97YAR
Process information:
Process ID: 3620
Process name: …Run Code Online (Sandbox Code Playgroud) 我正在研究的这个项目要求我保留一个管理员用户的本地数据库,并为常规用户使用外部数据库.任何在admin db中通过身份验证的人都应该被分配"admin"角色,而通过另一个db验证的任何人都将被分配一个"用户"角色.
我可以手动分配这些角色吗?我不需要角色提供程序的复杂性或任何东西,因为我只使用这两个角色,这些角色总是基于它们通过哪个db进行身份验证.
如果您可以提供示例代码或指向某些文档的链接,那将是一个巨大的帮助.谢谢!
编辑:
目前我没有使用角色提供者,创建一个似乎很麻烦.我知道它不是'最佳实践',但我只需要在登录期间分配2个角色中的1个(这永远不会改变).将角色信息存储在数据库中也没有意义,因为用户已经按角色分为2个dbs.
这是一些伪代码:
if (AdminDB.ValidateUser(username,password)==true) {
SetAuthCookie(username);
AssociateUserWithRole(username, 'admin');
} elseif (UserDB.ValidateUser(username,password)==true) {
SetAuthCookie(username);
AssociateUserWithRole(username, 'user');
} else {
// Login failed.
}
Run Code Online (Sandbox Code Playgroud)
它的'ThisSession.AssociateUserWithRole'部分我不知道.基本上,用户通过身份验证,我需要告诉.NET用户属于哪个角色.
我有这个代码,通过使用我的会员提供商给我一个所有用户的列表.
var users = Membership.GetAllUsers();
var usernames = new List<string>();
foreach(MembershipUser m in users)
usernames.Add(m.UserName);
Run Code Online (Sandbox Code Playgroud)
我认为应该有一个更简单的方法来使用LINQ,但我似乎无法在MembershipUserCollection上使用LINQ
我正在尝试配置ActiveDirectoryMembershipProvider,但我不断收到消息"无法与服务器建立安全连接".
我在MSDN网站上看到我应该在我的网站上配置信任级别不受限制,我仍然可以.
这是我的例子:
<connectionStrings>
<add name="LocalAD" connectionString="LDAP://example.com/dc=example,dc=com" />
</connectionStrings>
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
<providers>
<add name="AspNetActiveDirectoryMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider"
applicationName="adtest"
connectionUsername="cn=Users"
connectionPassword="password"
connectionStringName="LocalAD" >
</add>
</providers>
</membership>
<trust level="Full" />
<authentication mode="Forms">
<forms loginUrl="login.aspx"
protection="All"
timeout="30"
name="miBenefitsAdminToolCookie"
path="/"
requireSSL="false"
slidingExpiration="true"
defaultUrl="Default.aspx"
cookieless="UseCookies"
enableCrossAppRedirects="false" />
</authentication>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
Run Code Online (Sandbox Code Playgroud) 是什么之间的差异Membership,SimpleMembership,ASP.NET Identity?
SimpleMembership在Web表单中使用.SimpleMembershipWeb表单中的限制.Asp.Net Mvc 4 Internet应用程序使用SimpleMembership ..当您在Visual Studio 2013 Preview上创建新的Mvc项目时,我认为Mvc 5使用新的..你对此有所了解吗?
SimpleMembership;

我不知道MVC 5名称的会员资格;
asp.net-mvc membership-provider visual-studio-2013 asp.net-mvc-5 asp.net-identity