HTTP Basic Authentication认证的资源的C#实现

要在发送请求的时候添加HTTP Basic Authentication认证信息到请求中,有两种方法:


一是在请求头中添加Authorization:
Authorization: "Basic 用户名和密码的base64加密字符串"
二是在url中添加用户名和密码:
http://userName:password@api.minicloud.com.cn/statuses/friends_timeline.xml
下面来看下对于第一种在请求中添加Authorization头部的各种语言的实现代码。


先看.NET的吧:


string username="username";
string password="password";
//注意这里的格式哦,为 "username:password"
string usernamePassword = username + ":" + password;
CredentialCache mycache = new CredentialCache();
mycache.Add(new Uri(url), "Basic", new NetworkCredential(username, password));
myReq.Credentials = mycache;
myReq.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(newASCIIEncoding().GetBytes(usernamePassword))); 


WebResponse wr = myReq.GetResponse();
Stream receiveStream = wr.GetResponseStream();
StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8);
string content = reader.ReadToEnd();

你当然也可以使用HttpWebRequest或者其他的类来发送请求。


from:http://blog.163.com/da7_1@126/blog/static/104072678201193014224125/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 中,可以通过以下代码实现 OnAuthentication 订阅: ```csharp using Microsoft.AspNetCore.Authentication; // ... // 在 Startup 类的 ConfigureServices 方法中添加以下代码 services .AddAuthentication(options => { options.DefaultAuthenticateScheme = "YourAuthenticationScheme"; options.DefaultChallengeScheme = "YourAuthenticationScheme"; }) .AddYourAuthentication(options => { // 配置 YourAuthenticationScheme 的选项 }); // 在 Startup 类的 Configure 方法中添加以下代码 app.UseAuthentication(); // 实现 OnAuthentication 事件 app.Use(async (context, next) => { var authenticationResult = await context.AuthenticateAsync("YourAuthenticationScheme"); if (authenticationResult?.Principal != null) { // 已通过身份验证 // 在这里可以对用户进行授权等操作 } else { // 未通过身份验证 // 可以在这里重定向到登录页面等操作 } await next(); }); ``` 在这段代码中,我们首先通过 `services.AddAuthentication` 方法注册了我们自己的身份验证方案,然后在 `app.UseAuthentication()` 方法中启用身份验证中间件。 接下来,我们通过 `app.Use` 方法实现了一个自定义中间件,用于在每个请求到达时检查用户是否已通过身份验证。在这个中间件中,我们使用 `context.AuthenticateAsync` 方法对请求进行身份验证,并在验证成功时执行相应的操作。 注意,这里的 `YourAuthenticationScheme` 是你自己定义的身份验证方案名称,需要根据实际情况进行替换。同时,需要在 `AddYourAuthentication` 方法中配置你的身份验证方案选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值