我有一个列出角色的下拉列表框.我想获得具有该角色的用户列表.我的意思是"管理员"角色或"CanEdit"角色的用户列表.这是我的代码:
public IQueryable<Microsoft.AspNet.Identity.EntityFramework.IdentityUser>
GetRolesToUsers([Control] string ddlRole)
{
//ddlRole returns role Id, based on this Id I want to list users
var _db = new ApplicationDbContext();
IQueryable<Microsoft.AspNet.Identity.EntityFramework.IdentityUser> query = _db.Users;
if (ddlRole != null)
{
//query = query.Where(e => e.Claims == ddlRole.Value); ???????
}
return query;
}
Run Code Online (Sandbox Code Playgroud)
请帮忙.
更新的代码(仍然错误)
public List<IdentityUserRole> GetRolesToUsers([Control]string ddlRole)
{
var roleManager =
new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
var users = roleManager.FindByName("Administrator").Users.ToList();
return users;
}
Run Code Online (Sandbox Code Playgroud)
错误:当ItemType设置为"Microsoft.AspNet.Identity.EntityFramework.IdentityUser"时,Select方法必须返回"IQueryable"或"IEnumerable"或"Microsoft.AspNet.Identity.EntityFramework.IdentityUser"之一.
我尝试了各种铸件,但没有一个帮助.
更新(工作解决方案)
感谢chris544,他的想法帮助我解决了这个问题.这是工作方法: -
public List<ApplicationUser> GetRolesToUsers([Control]string ddlRole)
{
var context = …Run Code Online (Sandbox Code Playgroud) asp.net asp.net-mvc asp.net-mvc-4 asp.net-identity asp.net-identity-2
我从2015年开始研究MVC中的开源社区项目Azure Media Services上传和播放视频.我之前没有使用任何交付加密,所以我开始研究AES.
在Azure媒体服务团队的所有源代码/示例中,我注意到在上传内容后正在生成测试令牌,这在我的情况下也很有效.但是,下一次如何生成测试令牌以进行播放?
我的理解是,每次玩家请求播放时我们都需要令牌.从技术上讲,播放器向关键服务提供商创建请求并接收更新的令牌.
因此,为了获得更新的令牌,我尝试了几种无法解决此问题的方法,我看到错误"A ContentKey(Id ='...',Type ='EnvelopeEncryption'),其中包含已链接到此资产的相同类型" .
这看起来像是一个有效的错误消息,因为EnvelopeEncryption类型的密钥已经添加并在上传内容后与资产相关联,并在再次请求此弹出窗口时.
下面给出的代码是从这里复制的.
public ActionResult Index()
{
var model = new List<VideoViewModel>();
var videos = db.Videos.OrderByDescending(o => o.Id).ToList();
foreach (var video in videos)
{
var viewModel = new VideoViewModel();
viewModel.Id = video.Id;
viewModel.EncodedAssetId = video.EncodedAssetId;
viewModel.IsEncrypted = video.IsEncrypted;
viewModel.LocatorUri = video.LocatorUri;
// If encrypted content, then get token to play
if (video.IsEncrypted)
{
IAsset asset = GetAssetById(video.EncodedAssetId);
IContentKey key = CreateEnvelopeTypeContentKey(asset);
viewModel.Token = GenerateToken(key);
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试将数据访问同步查询转换为异步查询,到目前为止,除了选择return的列表之外,我都进行了转换IQueryable<T>。
到目前为止,这是我所做的:
[Dependency]
public SampleContext db { get; set; }
public async System.Threading.Tasks.Task<Profile> Add(Profile item)
{
db.Profiles.Add(item);
await db.SaveChangesAsync();
return item;
}
public async System.Threading.Tasks.Task<Profile> Get(string id)
{
return await db.Profiles.AsNoTracking().Where(i => i.Id == id).FirstOrDefaultAsync();
}
public async System.Threading.Tasks.Task Remove(string id)
{
Profile item = db.Profiles.Find(id);
item.IsDeleted = 1;
db.Entry(item).State = EntityState.Modified;
await db.SaveChangesAsync();
}
public async System.Threading.Tasks.Task<bool> Update(Profile item)
{
db.Set<Profile>().AddOrUpdate(item);
await db.SaveChangesAsync();
return true;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码运行良好,我被困在转换这段代码:
public IQueryable<Profile> GetAll()
{
return db.Profiles.AsNoTracking().Where(i => i.IsDeleted == 0); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ASP.NET Web Form在我的YouTube频道上传视频.我创建了开发人员帐户,并使用基于JavaScript的解决方案进行了测试,该解决方案需要每次登录才能上传视频.
我希望我的网站用户直接在我的频道上传视频,并且每个身份验证应该在代码后面,不应提示用户登录.为此,我写了以下课程:
public class UploadVideo
{
public async Task Run(string filePath)
{
string CLIENT_ID = "1111111111111111111111.apps.googleusercontent.com";
string CLIENT_SECRET = "234JEjkwkdfh1111";
var youtubeService = AuthenticateOauth(CLIENT_ID, CLIENT_SECRET, "SingleUser");
var video = new Video();
video.Snippet = new VideoSnippet();
video.Snippet.Title = "Default Video Title";
video.Snippet.Description = "Default Video Description";
video.Snippet.Tags = new string[] { "tag1", "tag2" };
video.Snippet.CategoryId = "22"; // See https://developers.google.com/youtube/v3/docs/videoCategories/list
video.Status = new VideoStatus();
video.Status.PrivacyStatus = "unlisted"; // or "private" or "public"
using (var fileStream = new …Run Code Online (Sandbox Code Playgroud) asp.net asp.net-mvc google-api google-api-client google-api-dotnet-client