0
我們正在使用表單身份驗證構建需要來自IIS服務器的一些數據的命令行應用程序。如何從命令行應用程序執行表單身份驗證?我試過了,但發生的一切就是請求被重定向到登錄頁面。命令行應用程序,IIS需要表單身份驗證
我猜如果我可以包含一個身份驗證cookie請求與正確的憑據,下載會很好。
我可以控制客戶端和服務器。我可以在web.config中設置machineKey,但無法弄清楚如何在命令行應用程序中設置它。這必須是相同的驗證密鑰才能以正確的格式加密cookie?
該服務器是用asp-net mvc編寫的。
var request = (HttpWebRequest)WebRequest.Create(uri);
var formsCookiePath = "/";
var cookieName = ".FormName";
var domain = "localhost";
var username = "username";
var password = "pa$$word";
var ticket = new FormsAuthenticationTicket(1,
username,
DateTime.Now,
DateTime.Today.AddYears(10),
true,
password,
formsCookiePath);
var encryptedTicket = FormsAuthentication.Encrypt(ticket);
var authenticationCookie = new Cookie(
cookieName,
encryptedTicket,
formsCookiePath,
domain)
{
HttpOnly = true,
Secure = false
};
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(authenticationCookie);
request.UserAgent = "Internal downloader";
var loWebResponse = (HttpWebResponse)request.GetResponse();
更新: 基於從Zruty我用這個例子來生成身份驗證Cookie的答案:
ASP.NET Authorization from Console Application & Timeout