手も足も出ない。
SelectCommand,InsertCommand,UpdateCommand,DeleteCommand を編集するところが 今までわからかったんだけど、 「テーブル名TableAdapter をクリックしてプロパティを表示」だったか。 (プロパティウィンドウ表示しっぱなしならクリックするだけ)
PasswordAnswerAttemptLockoutDuration は ActiveDirectoryMembershipProvider なら有効だけど、 SqlMembershipProvider になくてだまされたーと思って自分で実装してみた。
Default.aspx.cs にasp:Loginをはっつけた後のコード。
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
loginControl.LoggingIn += new LoginCancelEventHandler(loginControl_LoggingIn);
}
const int PasswordAnswerAttemptLockoutDuration = 30;
protected void loginControl_LoggingIn(object sender, LoginCancelEventArgs e)
{
foreach (MembershipUser u in Membership.FindUsersByName(loginControl.UserName))
{
if (u.IsLockedOut)
{
if (u.LastLockoutDate < DateTime.Now.AddMinutes(- PasswordAnswerAttemptLockoutDuration))
{
u.UnlockUser();
Membership.UpdateUser(u);
}
}
}
}
}
LoggingInイベントは、当初は OnLoggingIn 属性としてaspx側に書いていたら、 デザイナーの方で消されたのに別にエラーは発生せず、いつの間にか無効になっていたという事件も発生した。
イベントの追加は、どうせコード本体をC#で書くのでコード側でやった方がよい。 出来上がった行は長いけど、キー操作としてはたいしたことないし。+=[Tab] で右辺は全部補完してくれる。
[Renderなんとか]みたいなメソッドを延々と探っていたのだが、
http://サーバ名/ReportServer/Pages/ReportViewer.aspx?%2fReport+Project%2fReport_example&rs%3aCommand=Render&rs:Format=PDF&パラメータ=1234
みたいなURLをたたくだけだった。
レポートに渡すパラメータも本当にそのまま指定するだけやん。
最初につかまえたドキュメントは URLでの表示形式の指定。
ちなみにPNGを出力させたい時は、rs:Format=PDFの代わりに
rs:Format=IMAGE&rc:OutputFormat=PNG&rc:DpiX=300&rc:DpiY=300 といったように指定する。
ドキュメントに出てくるデバイス情報設定 パラメータへのプレフィックスは rc: だ。