小编Jas*_*ent的帖子

MVC5中的授权/角色

我在MVC5(VS2013)中使用授权/角色时遇到了麻烦.

身份验证几乎可以开箱即用(也就是说只需使用Visual Studio创建默认的MVC项目).我将DefaultConnection连接字符串更改为有效(但不存在)的数据库.然后我注册一个新的用户和数据库被自动创建,以表,如AspNetUsersAspNetRoles.

但是,我似乎无法对角色做任何事情.要做的第一件事似乎是使用C#代码添加角色,例如:

Roles.CreateRole("Admin");
Run Code Online (Sandbox Code Playgroud)

我收到一条消息的异常:

"尚未启用角色管理器功能."

我在web.config中使用以下命令启用它:

<roleManager enabled="true"/>
Run Code Online (Sandbox Code Playgroud)

现在得到例外:

"无法连接到SQL Server数据库."

这曾经非常容易使用System.Web.Security.SqlRoleProvider,但不适用于MVC5默认的新提供程序.关于这一点有很多非常复杂的文章,但在我看来,它是如此必要和直接的东西,必须有一个简单的方法来使它工作.

非常感谢任何帮助.

c# asp.net-mvc-5 role-manager

6
推荐指数
2
解决办法
5631
查看次数

什么是 Html.EditorFor 的标签助手等价物

如果我Html.EditorFor在字符串类型的属性上使用,则生成的元素默认<input>为“文本”类型。

或者,如果该属性具有该属性,[DataType(DataType.MultilineText)]Html.EditorFor生成一个<textarea>.

但是,如果我使用标签助手,那么我必须为自己选择元素类型,例如<input asp-for='MyProperty' />. 这可以使用有关属性的信息来确定输入的类型(文本、日期、电子邮件等),但将始终生成<input>,从不生成<textarea>,即使我有该[DataType]属性。

这似乎与我可以在一个地方从单行更改为多行的想法背道而驰:模型。现在我必须浏览所有相关视图并自己进行更改。

在我看来,我完全有可能编写自己的标签助手,它可以查看属性属性并决定是否生成<input><textarea>,但我找不到任何对预定义的引用。

有没有这样一个预定义的标签助手,如果没有,有什么原因吗?

c# asp.net-core asp.net-core-tag-helpers

6
推荐指数
1
解决办法
2290
查看次数

.NET 6 实体框架的新 LINQ 功能

在.NET 6中有一些不错的新LINQ扩展方法,例如

var oldest = context.People.MaxBy(p => p.Age);
Run Code Online (Sandbox Code Playgroud)

但是,EF 提供程序似乎尚不支持这些功能(当然不支持 SQLite 或 SQLServer,两者都是 6.0.0 版本)。

有谁知道这些提供商计划何时提供这些服务?

linq sql-server sqlite entity-framework .net-6.0

1
推荐指数
1
解决办法
1822
查看次数