小编Nei*_*ith的帖子

无法从特定角色中删除用户

使用web-api 2和identity 2,我正在尝试使用用户ID和角色名创建一个从角色中删除用户的操作.我正在使用nuget identity2示例提供的ApplicationUserManager.

我的行动

[HttpPost]
[Route("RemoveUserFromRole")]
public async Task<IHttpActionResult> RemoveUserFromRole(UserRolesViewModel model) 
{
    if (!ModelState.IsValid)
        return BadRequest(ModelState);

    var result = await UserManager.RemoveUserFromRolesAsync(
        model.UserId, model.RoleNames);

    if (result.Errors.Any())
        return InternalServerError(); 

    return Ok();
}
Run Code Online (Sandbox Code Playgroud)

我的观点模型:

public class UserRolesViewModel
{
    [Required]
    public string UserId { get; set; }

    [Required]
    public IList<string> RoleNames { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

ApplicationUserManager的RemoveUserFromRolesAsync:

public virtual async Task<IdentityResult> RemoveUserFromRolesAsync(
    string userId, IList<string> roles) 
{
    var userRoleStore = (IUserRoleStore<ApplicationUser, string>) Store;

    var user = await FindByIdAsync(userId).ConfigureAwait(false);
    if (user == null)
        throw …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-web-api asp.net-identity

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

string.Format不附加给定的args

我正在为string.Format写一个扩展名(我之前没有遇到任何问题.)

我的扩展名:

    public static string FormatWith(this string source, params object[] args) {
        source.ThrowIfNull("source");

        return string.Format(source, args);
    }
Run Code Online (Sandbox Code Playgroud)

我的测试:

    [TestMethod]
    public void FormatWith_ShouldReturnCorrectResult_FromValidArgs() {
        var expected = "testing 123";
        var actual = "test".FormatWith("ing", " ", 123);

        Assert.AreEqual(expected, actual);
    }
Run Code Online (Sandbox Code Playgroud)

在我的测试中,在调用FormatWith之后,实际应该是"测试123",但它只是"测试".

我测试的消息:

    Assert.AreEqual failed. Expected:<testing123>. Actual:<test>.
Run Code Online (Sandbox Code Playgroud)

我已经尝试将除string之外的类型传递给扩展名,但结果没有改变.而且我确定source.ThrowIfNull不会抛出异常.

什么给出了什么?我忽略了什么吗?一个很好的答案将向我展示FormatWith的工作实现,并解释为什么我的实现不起作用.

编辑:我是个白痴,完全忘了{0},{1} ......我也是每天使用它.定时器启动时会接受第一个答案.多谢你们.

.net c# extension-methods

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