小编Dav*_*ury的帖子

async await返回任务

有人可以解释这对同步方法意味着什么吗?如果我尝试改变方法async然后VS抱怨它.

这有效:

public Task MethodName()
{
     return Task.FromResult<object>(null);
}
Run Code Online (Sandbox Code Playgroud)

这不起作用:

public async Task MethodName()
{
     return Task.FromResult<object>(null);
}
Run Code Online (Sandbox Code Playgroud)

所以基本上我想知道这究竟是什么意思: Task.FromResult<object>(null);

c# asynchronous async-await

113
推荐指数
3
解决办法
18万
查看次数

ASP.NET Web API使用Url.Action生成URL

如何在Web Api中生成相同的URL?

var url = Url.Action("Action", "Controller", new { product = product.Id, price = price }, protocol: Request.Url.Scheme);
Run Code Online (Sandbox Code Playgroud)

PS

应该将URL生成为MVC控制器/操作,但是应该从web api中生成.

所以基本上:向我发出一个get请求,api/generateurl然后返回一个url:

http://domain.com/controller/action?product=productId&price=100
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-5 asp.net-web-api2

37
推荐指数
1
解决办法
4万
查看次数

AngularJS ng-repeat,逗号在最后一项之前用'和'分隔

我有一个项目清单......

$scope.Users =[{
    UserName: ''
}];
Run Code Online (Sandbox Code Playgroud)

在我看来,我想列出这样的假设我只有4个项目 $scope:Users

Username1, Username2, Username3 and Username4

<span data-ng-repeat="user in Users">{{user.Username}}</span>{{$last ? '' : ', '}}
Run Code Online (Sandbox Code Playgroud)

上面的表达式基本上会在每个项目后添加逗号并且工作正常.

我的问题是如何and在最后一个项目之前添加一个关键字,所以它会像:

Username1, Username2, Username3 and Username4
Run Code Online (Sandbox Code Playgroud)

代替:

Username1, Username2, Username3, Username4
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-ng-repeat

37
推荐指数
5
解决办法
4万
查看次数

ASP.NET Identity 2 UserManager使所有用户都异步

有人可以告诉你是否有办法让所有用户在ASP.NET Identity 2中异步?

UserManager.Users没有任何异步或找到所有异步或somwething这样的

c# asp.net-mvc-5 asp.net-identity-2

18
推荐指数
1
解决办法
2万
查看次数

OWIN承载令牌认证

我有一些与Bearer Token有关的问题.在Owin你可以保护这样的票Protect(ticket):

ClaimsIdentity identity = new ClaimsIdentity(Startup.OAuthServerOptions.AuthenticationType);

identity.AddClaim(new Claim(ClaimTypes.Name, user.UserName));

 Dictionary<string, string> properties = new Dictionary<string, string>();
 properties.Add("UserId", user.Id);
 properties.Add("UserName", user.UserName);
 properties.Add("Role", "user");

 AuthenticationProperties properties = new AuthenticationProperties(properties);

 AuthenticationTicket ticket = new AuthenticationTicket(identity, properties);


 DateTime currentUtc = DateTime.UtcNow;

 DateTime expireUtc = currentUtc.Add(TimeSpan.FromHours(24));

 ticket.Properties.IssuedUtc = currentUtc;
 ticket.Properties.ExpiresUtc = expireUtc;


 string token = OAuthAuthorizationServerOptions.AccessTokenFormat.Protect(ticket)
Run Code Online (Sandbox Code Playgroud)

现在令牌将是这样的:

nqak-9R6U64Owsm_lqn_mJzKc_Djd8iVnIw0EX77v5x2rybhf4m_zg_UnrsoO5BxDZQl0HWrSvvd4efa4ChNSf5rAGhd13aOXZlvwOJOZ5v_9bhRCq8A7tqHyiM6DqVVOyYs3lh2SU-wU1m85HH2IcYDtdTY3ijaKZ_QnP1nsqO5LRnnEL4upbETPW9zqWIZzZBX7_Y2cXi2v0K7WnlRor3gFKIZlU9J-NfidRpWXqq5744NfWWHalYADGS7eUWyuxPJCj9ykHYzaXFksJEXBw

我的问题:

  • 如何生成/加密此令牌?

  • 是否有人可以尝试使用令牌进行混乱并添加一些自定义声明?

例:

如果您有令牌字符串,则可以执行以下操作:

AuthenticationTicket ticket = OAuthAuthorizationServerOptions.AccessTokenFormat.Unprotect(token);
Run Code Online (Sandbox Code Playgroud)

现在,您可以向其添加自定义声明.例如,如果存在role具有值的声明,user则可以修改该声明并添加admin然后重新编码故障单,并获得具有管理员角色的令牌.

我实际上做了一些测试,在服务器上编码一个令牌然后尝试在另一个系统上修改它,但我不能Unprotect.因此,我想也许使用最初创建的机器密钥对票证进行加密/解密.但是,如果我尝试Unprotect从同一台机器上运行它.我可以解密并修改它.

有人可以解释一下这个过程吗?

c# oauth-2.0 owin bearer-token asp.net-identity-2

14
推荐指数
1
解决办法
1万
查看次数

ASP.NET MVC4和Web API身份验证+授权(Windows 8和Web)

我使用Simple Membership db创建了一个ASP.NET MVC 4 Internet Web应用程序,用于存储用户,角色和配置文件.

在我的应用程序中,我创建了一个Web API控制器,它将响应http:// 127.0.0.1/api/users并且此调用将返回存储在db中的所有用户的列表JSON.

UsersController装饰有[Authorize]属性,因此对任何调用http:// 127.0.0.1/api/users必须进行身份验证.

在主页面上,我有一个按钮,一旦按下jQuery ajax get请求就会执行,并将显示Web API(json)返回的用户列表.

如果我登录并按下按钮,一切正常......检索并显示用户列表.

如果我没有登录,则显示的消息是401 - Unauthorized(jquery调用statusCode中的自定义消息),因此它可以正常工作,因为该[Authorize]属性.

我的问题:我如何验证Web API何时向其发出请求,获取用户列表并从Windows 8应用程序或Windows Phone 8或Windows窗体中显示它们?换句话说,来自Web浏览器以外的客户端?

c# windows-8 asp.net-mvc-4 asp.net-web-api

10
推荐指数
1
解决办法
8997
查看次数

使用AngularJS的Bootstrap选项卡

我在使用AngularJS中的引导选项卡时遇到问题.

 <div class="tab-container">
    <ul class="nav nav-tabs">
       <li class="active"><a href="#home" data-toggle="tab">Home</a></li>
       <li><a href="#profile" data-toggle="tab">Profile</a></li>
       <li><a href="#messages" data-toggle="tab">Messages</a></li>
    </ul>
 <div class="tab-content">
    <div class="tab-pane active cont" id="home">
        <h3 class="hthin">Basic Tabs</h3>
        <p>This is an example of tabs </p>
     </div>

     <div class="tab-pane cont" id="profile">
       <h2>Typography</h2>
       <p>This is just an example of content 
     </div>

     <div class="tab-pane" id="messages">..sdfsdfsfsdf.
     </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

问题是,当我选择一个标签,例如Home或Profile时,我被重定向到/ home或/ profile url,而不是显示标签本身的内容.

我有一种感觉,这可以通过指令以某种方式实现,并防止重定向到页面主页或配置文件,而是显示选项卡内容.

angularjs angularjs-directive

10
推荐指数
5
解决办法
3万
查看次数

MVC 5 Identity 2和Web API 2授权以及使用承载令牌的呼叫api

以下场景:我有一个使用Identity 2.0和Web API 2的MVC 5 Web应用程序.

一旦用户在MVC 5中进行身份验证,他应该能够调用WEB API端点,让我们调用它:api/getmydetails使用承载令牌.

我需要知道的是如何在MVC 5中为特定用户发出令牌?

token oauth-2.0 asp.net-mvc-5 asp.net-web-api2

9
推荐指数
1
解决办法
4399
查看次数

Visual Studio 2013 - 调试 - >启动新实例

我有一个Windows窗体项目,我希望能够立即开始调试该项目的10个实例.

通常调试项目时,只启动一个实例.您可以转到Debug - > Start New Instance来创建其他的.

是否可以在Visual Studio中添加快捷方式或按钮或类似的东西:Debug 10 Instances 并弹出该项目的10个实例.

visual-studio-2013

9
推荐指数
1
解决办法
7008
查看次数

9
推荐指数
1
解决办法
5880
查看次数