- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在我的项目中,我使用 WebSecurity 和 EF 代码优先迁移。
我有我的自定义 UserProfile 类,我想将其与 WebSecurity 结合。
我想在 Seed 方法的迁移配置类中为用户播种。
所以我试试这个:
#1)
if (!Roles.RoleExists("admin"))
Roles.CreateRole("admin");
if (!WebSecurity.UserExists(AdminUserName))
WebSecurity.CreateUserAndAccount(
AdminUserName,
"admin",
new {Email = "admin@mindmap.pl"});
但它提示我应该先调用 WebSecurity.InitializeDatabaseConnection。
好的,这是有道理的。所以我将以下行添加到我的 Global.asax 中:
#2)
WebSecurity.InitializeDatabaseConnection(
_connectionStringName,
"UserProfiles",
"Id",
"UserName",
autoCreateTables: true);
但比下面几行:
#3)
var dbMigrator = new DbMigrator(_configuration);
dbMigrator.Update();
抛出错误:
There is already an object named 'UserProfiles' in the database.
好吧,这再次有意义,因为迁移会尝试创建刚刚由 WebSecurity 创建的表。
我找到了一个解决方法:我将#2) 放在#1) 的正上方。比它奏效。
问题是我必须在 seed 方法中初始化 WebSecurity,这有点臭。
我的问题是如何将 WebSecurity.InitializeDatabaseConnection 移回 Global.asax?
最佳答案
您可以在 Global.asax
中编写此代码:
if (!WebMatrix.WebData.WebSecurity.Initialized)
WebSecurity.InitializeDatabaseConnection(_connectionStringName, "UserProfile", "UserId", "UserName", autoCreateTables: true);
然后通过这种方式使用迁移进行播种,您可以在此处放置自定义字段,例如电子邮件,...:
private void SeedMemberShip()
{
if (!WebMatrix.WebData.WebSecurity.Initialized)
WebSecurity.InitializeDatabaseConnection(_connectionStringName, "UserProfile", "UserId", "UserName", autoCreateTables: true);
var roles = (SimpleRoleProvider)Roles.Provider;
var membership = (SimpleMembershipProvider)Membership.Provider;
if (!roles.RoleExists("Admin"))
{
roles.CreateRole("Admin");
}
if (membership.GetUser(username, false) == null)
{
membership.CreateUserAndAccount(username, password);
}
if (!roles.GetRolesForUser(username).Contains("Admin"))
{
roles.AddUsersToRoles(new[] { username }, new[] { "Admin" });
}
}
然后调用上面的方法就是seed方法:
protected override void Seed(YourContext context)
{
SeedMemberShip();
}
关于c# - WebSecurity.InitializeDatabaseConnection 不配合代码优先迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19214205/
每次我用 Visual Studio 重新启动调试时,我都会收到这个奇怪的错误: You must call the "WebSecurity.InitializeDatabaseConnection
除了 AccountController.cs 文件中已经生成的内容,我无法让 WebSecurity 对象在任何地方工作。帐户 Controller 有 [InitializeSimpleMembe
当我们选择New Project --> MVC 4 --> Internet Application ,它会自动为我们生成AccountController。在这个 Controller 中,我只关
我在 MSSQL 中完成了一个项目。我将 MSSQL 迁移到 MySql,因为我认为 Webmatrix.WebData 也将支持 MySql。 WebSecurity 初始化成功。 if (!Web
我有一个连接到多个数据库的 c# mvc.net 应用程序。澄清一下,基于 url 的子域,应用程序将连接到特定的数据库。这是通过将 web.config 中的 defaultConnectionFa
在一个测试项目中,我使用的是 SimpleMembershipProvider 和 Entity Framework 5。测试项目使用 localdb 创建了一个数据库,但它突然停止工作了。我不确定发
我的情况 我正在 ASP.NET MVC4 应用程序中进行测试。我正在开发的应用程序部分将现代 WebSecurity/SimpleMembershipProvider 与正在逐步淘汰的遗留身份验证系
我创建了一个过滤器,在过滤器 super 构造函数中它需要一个 defaultFilterProcessesUrl。我通过 url /v1/** 选择了所有请求。 我需要不登录 /v1/users (
在我的项目中,我使用 WebSecurity 和 EF 代码优先迁移。 我有我的自定义 UserProfile 类,我想将其与 WebSecurity 结合。 我想在 Seed 方法的迁移配置类中为用
这可能是个愚蠢的问题,但我在 Google 上搜索得很辛苦,却找不到答案。 我正在创建一个数据库位于另一个大陆的网站,因此速度是一个至关重要的问题。 据我了解, WebSecurity.Login(
我正在编写一个 mvc 4 c# .net 4.5 网站 我想创建一个新的公司对象并注册一个链接到该公司的新用户。 我的账户模型是: [Table("UserProfile")] pu
我正在使用 WebMatrix 并建立了一个基于“StarterSite”的网站。在这个入门站点中,您将获得一个不错的基本布局 - 包括注册、登录、忘记密码页面等... 我注意到在数据库中“webpa
我正在使用 SimpleMembership ( http://blog.osbornm.com/archive/2010/07/21/using-simplemembership-with-asp.
对我在使用 WebSecurity 时遇到的所有奇怪异常感到有点失望。此外,与 OAuth 的糟糕集成并没有让它看起来更漂亮。考虑放弃这个概念并手动编写整个用户管理...... 无论如何,我正在使用
*You must call the "WebSecurity.InitializeDatabaseConnection" method before you call any other metho
我正在尝试扩展简单成员资格以包括名字、第二名和电子邮件地址,但是我在使用 CreateUserAndAccount 时遇到了一些问题。 所以基本上在 RegisterModel 中我添加了以下内容:-
我在我的 Spring 4 MVC + Security + Boot 项目中设置了一个自定义身份验证过滤器。过滤器的工作很好,现在我想禁用某些 URI 的安全性(如 /api/**)。这是我的配置:
我正在 Visual Studio 的示例 Web 应用程序中探索 ASP.NET MVC 的可能性 WebMatrix.WebData.WebSecurity 用于成员资格(创建帐户,并指定用户登录
在我基于版本 1.3.0.BUILD-SNAPSHOT 的 Spring Boot 应用程序中,我在 中有静态资源(图像、css、js) resources 下的 static 文件夹。 我看到了一些
谁能解释一下何时覆盖 configure(HttpSecurity)、configure(WebSecurity) 和 configure(AuthenticationManagerBuilder)?
我是一名优秀的程序员,十分优秀!