0

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

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

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

在此处输入图像描述

此外,“ . RoleExists( ”和“ .Update ”) 下的红线。 在此处输入图像描述

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

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;
4

1 回答 1

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(...);
}
于 2016-01-11T14:55:35.583 回答