この投稿の最後にある最終更新
私は一日中それに取り組んでいます、そして私はそれを機能させることができません:
private void button1_Click(object sender, EventArgs e)
{
var loginUri = new Uri(@"http://localhost:5898/Account/Login");
const string strLoginData = "Login=ojejq&Password=ojejqjejq&returnUrl=%2F";
var cookie = GetAuthCookie(loginUri, strLoginData);
}
public CookieContainer GetAuthCookie(Uri loginUri, string data)
{
var cookieJar = new CookieContainer();
var request = (HttpWebRequest)WebRequest.Create(loginUri);
request.Method = "POST";
request.CookieContainer = cookieJar;
request.ContentLength = data.Length;
request.ContentType = "application/x-www-form-urlencoded";
var myWriter = new StreamWriter(request.GetRequestStream());
myWriter.Write(data);
myWriter.Close();
request.GetResponse();
return cookieJar;
}
私のASP MVC
アプリケーションでは、/Account/Login
POST
上記のコードにさえヒットしないコントローラーがあります。私は何が間違っているのですか?
編集:私のasp mvcアプリでの2つのログインアクション:
[AllowAnonymous]
public ActionResult Login()
{...}
と
[HttpPost]
[AllowAnonymous]
public ActionResult Login(LoginModel model, string returnUrl)
{...}
2番目の更新:ログインモデルを追加
public class LoginModel
{
[Required]
[Display(Name = "Login", ResourceType = typeof(NameResources))]
[StringLength(16, ErrorMessageResourceName = "LoginLengthError", ErrorMessageResourceType = typeof(NameResources), MinimumLength = 4)]
public string Login { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password", ResourceType = typeof(NameResources))]
[StringLength(32, ErrorMessageResourceName = "PasswordLengthError", ErrorMessageResourceType = typeof(NameResources), MinimumLength = 8)]
public string Password { get; set; }
}
3番目の更新:web.configにcookieless="AutoDetect"オプションが設定されていることを忘れました。何か変更があるかわかりませんか?
最終更新:まず、お時間をいただきありがとうございます。私を助けようとしたすべての人が賛成票を獲得します。問題はコードではなく、VisualStudio開発サーバーにあることがわかりました。それはどういうわけか私のbutton1POSTリクエストをリダイレクトし、プロセスでデータを失い、そのリクエストをGETリクエストに変更しました。私は知っています、werid、しかしコードは大丈夫でした。お時間をいただきありがとうございます。