【问题标题】:MVC5 to MVC6 converstion can't get RoleManager to workMVC5 到 MVC6 的转换无法让 RoleManager 工作
【发布时间】:2016-04-13 20:03:13
【问题描述】:

我正在尝试将 MVC 5 应用程序升级到 MVC 6。5 应用程序中唯一的功能是管理用户和角色的能力。它是我们在工作中创建的“模板”,用于包装所有 MVC 项目,为它们提供安全所需的所有“登录、注册和角色”内容。它运作良好。但是,我们也需要 MVC 6 版本。

我们能够通过单用户身份验证安装 MVC 6,现在我正在尝试从工作的 MVC 5 应用程序移植角色进程。

我的 RolesManagementController.cs 在 5 中工作,但在 6 中我在“RoleManager(IdentityRole)”下得到一条红线

此外,“.RoleExists(”和“.Update”)下的红线。

这是我在 6 版本中的 using 语句:

using System;
using System.Linq;
using Microsoft.AspNet.Mvc;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using System.Collections.Generic;
using MVC6.Models;

和我在 5 版本中的 using 语句并没有太大的不同。

using System;
using System.Linq;
using System.Web.Mvc;
using Donut5.Models;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;

【问题讨论】:

    标签: c# asp.net controller asp.net-core-mvc role-manager


    【解决方案1】:

    在新版本的 Asp.net (Asp.net 5) 中,这些方法变为异步的。你应该让你的方法async 并返回Task<T> 或只是Task 并使用await 关键字调用角色管理器方法

    await _rolesManager.RoleExistsAsync(...)
    await _rolesManager.UpdateAsync(...)
    

    例子:

    public async Task MethodName()
    {
        var role = await _rolesManager.RoleExistsAsync(...);
        await _rolesManager.UpdateAsync(...);
    }
    

    【讨论】:

    • 是的。这帮助了一大群人。解决了很多问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多