我正在尝试将MVC 5应用程序升级到MVC 6.这个应用程序中唯一能够管理用户和角色的能力。它是我们在工作中创建的“模板”,用于包装所有MVC项目,为他们提供安全所需的所有“登录,注册和角色”。它运作良好。但是,我们也需要MVC 6版本。
我们能够通过单用户身份验证安装MVC 6,现在我正在尝试从工作的MVC 5应用程序移植Roles进程。
我的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 System;
using System.Linq;
using System.Web.Mvc;
using Donut5.Models;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
答案 0 :(得分: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(...);
}