问题标签 [simplemembership]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6703 浏览

asp.net-mvc - 无法播种用户和角色

我正在尝试将用户和角色播种到我的数据库中。目前在 C# MVC4 中使用具有自动迁移功能的 Code First 实体框架。每当我打电话

更新-数据库-强制

我收到以下错误:

运行种子方法。System.InvalidOperationException:您必须在调用“WebSecurity”类的任何其他方法之前调用“WebSecurity.InitializeDatabaseConnection”方法。此调用应放置在站点根目录中的 _AppStart.cshtml 文件中。在 WebMatrix.WebData.SimpleRoleProvider.get_PreviousProvider() 在 WebMatrix.WebData.SimpleRoleProvider.RoleExists(String roleName) 在 System.Web.Security.Roles.RoleExists(String roleName) 在 GratifyGaming.Domain.Migrations.Configuration.Seed(GratifyGamingContext 上下文)在 C:\Users\Unreal\Documents\Visual Studio 2010\Projects\GratifyGaming\GratifyGaming.Domain\Migrations\Configuration.cs:System.Data.Entity.Migrations.DbMigrationsConfiguration 的第 36 行1.OnSeed(DbContext context) at System.Data.Entity.Migrations.DbMigrator.SeedDatabase() at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.SeedDatabase() at System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerableSystem.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId) 在 System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration) )在 System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration) 在 System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore() 在 System.Data.Entity.Migrations.Design.ToolingFacade。 BaseRunner.Run() 在调用“WebSecurity”类的任何其他方法之前,您必须调用“WebSecurity.InitializeDatabaseConnection”方法。此调用应放置在站点根目录中的 _AppStart.cshtml 文件中。

有问题的代码行是Role.Exists

我尝试将 WebSecurity.InitializeDatabaseConnection 放在 Global.asax、Seed() 中,并创建了一个 _AppStart.cshtml,但没有成功。我在互联网上搜寻可能的解决方案,但没有一个有效(包括其他堆栈溢出文章)。下面是一些值得注意的博客文章。

请参阅下面的代码。

[配置.cs]

标准种子代码可以正常工作。

[_AppStart.cshtml]

正常登录到我的网站与这里的这个完美配合。

[网络配置]

[AccountModel.cs]


更新

我认为 WebSecurity.InitializeDatabaseConnection 甚至都没有运行——我可以在我的 Seed 方法中放置多个,而不会出现通常会出现的“只能调用一次”错误。

我的种子方法和所有模型都在我的域项目中,而其他一切都在 WebUI 项目中。不确定这是否与它有关。

0 投票
2 回答
223 浏览

asp.net - SimpleMembershipProvider 未将表添加到我的数据库

我有一个标准的 ASP.NET MVC4 应用程序,我正在使用 EF Code First 构建 DAL。目前大约有 20-30 个模型,我正处于想要集成用户和角色的地步。我对此进行了大量研究,但似乎仍然无法使其正常工作。这是我现在所拥有的:

在我的数据库初始化类中(每次更改模型时都会调用)我用一堆数据播种它,然后调用它:

通过调试它不会抛出任何错误,我可以确认它正在命中这行代码。我的用户模型如下所示:

从我读过的所有内容来看,我认为这应该是我需要做的所有事情,但我有两个问题:

  1. 没有加载成员资格表

  2. 即使我引用 WebMatrix.WebData dll,我的配置似乎也抛出了错误

这是配置部分:

我在这里想念什么?

0 投票
1 回答
407 浏览

asp.net-mvc - 在 Asp.Net MVC 4 中使用 SimpleMembership 保护文件夹

我在我的 ASP.NET MVC 4 项目中使用 SimpleMembership Provider。为什么 web.config 中的以下代码不能为未经授权的用户保护文件夹的内容?

0 投票
0 回答
159 浏览

asp.net-mvc - .Net SimpleMembership UserProfile 表索引优化

我正在使用 .Net Simple Membership 并让它在我的 SQL DB 中构建表。
我注意到由以下命令构建的 UserProfiles 表

仅在 UserId 列上有索引。用户名也不应该有约束/索引吗?

登录命令

看起来它只会知道用户名,因此会执行表扫描以获取用户。

我在这里错过了什么吗?

谢谢

0 投票
6 回答
2691 浏览

asp.net-mvc-4 - .NET MVC4 SimpleMembership 错误 - “找不到名为 xxx 的用户”

我在我的 .NET MVC4 项目中使用 SimpleMembership。在开发过程中,在手动操作/重建数据库时,我遇到了一个在生产中不太可能出现的错误,但我想解决这个问题,但我找不到一种优雅的方式来处理它。

如果在登录应用程序后,您的用户名在数据库中被更改,或者您的用户记录被完全删除,用户将无法再访问应用程序的任何页面......包括允许匿名查看的公共页面,以及登录屏幕。相反,会引发异常 - “未找到名为“用户名”的用户”。

我的应用程序中的所有页面都显示一个部分视图,该视图呈现登录/注销控件。无论数据库中有什么,Request.IsAuthenticated 都会返回 true。应用程序似乎根据 cookie 中的信息认为用户仍在登录,但在数据库中找不到相应的记录。清除 auth cookie 可以解决这个问题,但这不是我想向可能遇到这种情况的用户提供的说明。

我当前的解决方案是在 Global.asax 中捕获该异常,清除 cookie,然后重定向到登录页面。这对我来说似乎完全是hacky。

有没有人对这种情况有更好的解决方案?我从未在使用旧的 .NET Membership 提供程序时遇到过这样的问题……我的期望是,这种情况应该开箱即用,我不应该考虑它……如果记录被更改/deleted 在数据库中,用户应该只是授权失败并自动重定向到登录页面。

0 投票
1 回答
1543 浏览

wcf - Roles.IsUserInRole() 在使用 wsHttpBinding 和 MVC 4 的 WCF 中不起作用

我有以下测试设置,所有工作:

-WCF 应用程序运行 MathService.svc,设置为使用 SimpleMembershipProvider

-MVC 4 Internet App 使用默认的 SimpleMembershipProvider

- 会员是:

  • 3 个角色:“调试”、“管理员”和“编辑”
  • 2个用户:角色调试和管理员中的“调试”(是的,角色调试中的用户调试)
  • 角色管理员中的“管理员”

- 证书,据我所知,我可以使用 wshttp 连接到服务

服务方法代码。

为什么调用“Roles.GetRolesForUser(cltName)”和 IsUserInRole 失败?

我从“ServiceSecurityContext”获得了正确的用户名,如果我启用 [PrincipalPermission] 属性,如果我使用用户 Admin 调用服务,我会按预期被拒绝。

那么为什么 PrincipalPermission 能够获得正确的用户角色呢?为什么我可以使用 Roles.GetUsersInRole("Debug") 来获取所有正确的用户但我不能调用 Roles.IsUserInRole(..)?

有一些帖子建议证书//会员设置错误,但我看不出我怎么能到目前为止并且仍然有错误的设置,最重要的是,只有一些角色方法失败,而不是全部。任何指针?

关于返回结果的一句话,如果我使用我的角色解决方法并通过调试调用,服务返回双精度,如果我在禁用管理员 [PrincipalPermission] 的情况下调用,我会返回整数精度

问候, 安德烈亚斯

0 投票
1 回答
4763 浏览

asp.net-mvc-4 - 我可以将 UserId 保留在 User.Identity 中吗?MVC4 简单成员

我想知道 SimpleMembership 是否将 UserId 保留在某个地方,或者如果没有,一旦派生数据,如何强制它保留。

我有简单的动作:

我的 MiniProfiler 说:

所以,我重复了对 UserId 的查询——首先是获取角色,其次是调用WebSecurity.GetUserId(User.Identity.Name);. 调用 [Authorize] 后,是否有一种聪明的方法可以将 UserId 保存在某处?

0 投票
1 回答
950 浏览

asp.net-mvc - MVC 4 中的角色何时初始化?不是在成功登录后

想要设置一些基于角色的依赖项(Ioc、Ninject)。但是成功登录后,用户的角色是未知的。何时何地进行注射?我可以强制初始化角色吗?还是我必须自己去取?

应用程序从 HomeContoller 开始(未设置角色),成功登录后,应用程序被重定向到 de HomeController(参见上面的标准代码),现在角色已设置......一个技巧是强制角色在HomeController 通过添加所有角色或额外的“普通”角色

但这会强制登录,也会强制 HomeController 作为起点。希望是一个“优雅”的地方来调用我的 DoRolebasedObjectBinding。

0 投票
0 回答
143 浏览

asp.net-mvc - Do I have to let SimpleMembershipProvider (Entity) manage the custom user account?

Setup

So I am attempting to use the new Simple Membership/role providers in ASP.net MVC (specifically 4.5) specifically through the WebMatrix.WebData.Websecurity.

I have utilized the providers ability to point the providers to my custom Users table.

I am also using NHibernate as my ORM of choice.

Problem

It appears to me that in the above setup, I would have to allow the Entity framework that the simple providers use to create user accounts, and be limited to loading (with NHibernate) the user account after created, to update it with additional data.

Is this correct?

NOTE

Yes, this question based on not trying to create custom providers based on either the simple or any of the .NET membership providers.

0 投票
3 回答
6174 浏览

asp.net-mvc - Simple Membership WebSecurity.CreateUserAndAccount 给出重复的 UserId 错误

使用 MVC 4,Simplemembership

我正在构建一个供企业使用的 Web 应用程序,因此不希望开箱即用的 MVC 4 模板功能允许用户注册。相反,我想要一个只允许管理员访问然后创建用户的创建用户视图。我希望我可以更改注册控制器上的安全性,然后让当前登录的用户使用现有的注册视图创建用户......没有骰子。

这是控制器中的代码。我没有从模板中更改它:

当当前登录的用户尝试通过此创建新用户时,您会收到错误消息(@ 第 86 行):

Hwre 是 UserProfile 类

WebSecurity.CurrentUserID 填充了当前登录的用户,我认为这是导致问题的原因。使用 simplemembership 提供程序实现此目的的正确方法是什么?

编辑:我尝试将其移回允许匿名用户注册,因此当我调试它时 WebSecurity.CurrentUserID 为-1,但我仍然遇到相同的错误。如果类中的 UserId 字段用属性​​ [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 修饰,如何生成重复键?