首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解SimpleMembership

理解SimpleMembership
EN

Stack Overflow用户
提问于 2013-10-15 03:18:20
回答 1查看 100关注 0票数 0

我想了解更多关于SimpleMembershipProvider在使用VS 2012互联网模板的ASP.NET MVC 4 web应用程序的上下文中的信息。

Q1.模块在哪里配置?在ASP.NET web表单版本中,它可以在web.config中看到。在MVC 4版本中,默认的web.config没有对成员提供程序的任何引用。

Q2. In machine.config,有一个配置好的SqlMembershipProvider。在什么地方/什么时候重写这个?

Q3.是什么触发了SimpleMembershipInitializer()被称为?它不在Globals.asax中。当我有一个已经登录的用户,我重新启动了web应用程序(或者如果already在休眠一段时间后唤醒了应用程序),用户就会陷入麻烦。

在调用"WebSecurity.InitializeDatabaseConnection“类的任何其他方法之前,必须调用"WebSecurity”方法。

当他下一次点击我网站上的链接时。可以不止一次地调用这个方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-15 14:52:28

A1.互联网模板应该在web.config中创建如下所示的条目。

代码语言:javascript
复制
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
  <providers>
    <clear/>
    <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
  </providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
  <providers>
    <clear/>
    <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
  </providers>
</membership>

这配置了SimpleMembership使用的角色和成员资格提供程序。当我用VS 2012在我的机器上为MVC4创建一个互联网模板时,它们总是存在的。确保您正在查看应用程序根目录中的web.config,而不是视图目录中的那个。此信息应该在根web.config中。如果没有它,则需要添加它才能使SimpleMembership正确工作。

A2.当您将信息放入web.config中时,将覆盖其他提供程序,如A1中所示。请注意,clear元素首先用于清除任何先前定义的提供程序。

A3. InitializeSimpleMembershipAttribute被装饰在AccountController上以执行SimpleMembership的延迟初始化。只有当您尝试访问AcccountController操作时才会调用它。例如,一旦用户登录,它就会初始化数据库。完成此初始化方法后,如果不使用窗体身份验证,则使用Internet模板创建的应用程序仍能工作。我不喜欢这种初始化方法,如果要进行表单身份验证,我更喜欢在Global.asax Application_Start方法中这样做。您可以阅读如何更改应用程序以使用本文中的初始化

如果您多次调用WebSecurity.InitializeDatabaseConnection,它将引发异常。在检查WebSecurity.Initialized的if语句中包装它总是一种很好的做法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19372729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档