そのままだとdot by dotに表示されず、モヤッとすることがある。
ルート要素の UseLayoutRounding を true に設定すればOK。
参考:
そのままだとdot by dotに表示されず、モヤッとすることがある。
ルート要素の UseLayoutRounding を true に設定すればOK。
参考:
Microsoft.AspNet.Identity.EntityFrameworkとかはEFのCodeFirstでテーブル初期化とかDB読み書きとかやってくれるやつだけど、CodeFirstが嫌でIUserStore自作するなら不要な感じ。CreatePerOwinContext()にて初期化用Funcを設定する。public class ApplicationUserManager : UserManager
{
public ApplicationUserManager(IUserStore
public static ApplicationUserManager Create(IdentityFactoryOptions
{
var manager = new ApplicationUserManager(new UserStore(context.Get
manager.PasswordHasher = new HogePasswordHasher();
return manager;
}
}
public class HogePasswordHasher : IPasswordHasher
{
public string HashPassword(string password)
{
// 塩を振ったりストレッチングしたりしよう
throw new NotImplementedException();
}
public PasswordVerificationResult VerifyHashedPassword(string hashedPassword, string providedPassword)
{
if (hashedPassword == HashPassword(providedPassword))
return PasswordVerificationResult.Success;
else
return PasswordVerificationResult.Failed;
}
}
[/csharp]
ちなみに、ASP.NET vNext のデフォルトっぽいPasswordHasherは以下の様な実装。
検証時は
2.0.0のMicrosoft.AspNet.Identity.PasswordHasher.VerifyHashedPassword()も、vNextのコードで生成したハッシュを使って検証したら成功したので、多分同じロジック。
参考:Identity/src/Microsoft.AspNet.Identity/Crypto.cs
[csharp]
if(this.User.IsInRole(“Admin”))
{
}
[/csharp]
とか
[csharp]
[Authorize(Roles=”Admin”)]
public ActionResult Index()
{
return View();
}
[/csharp]
とか。
[csharp]
@if (this.User.IsInRole(“Admin”))
{
}
[/csharp]
とか。
そのうちまとめるつもり。
System.Windows.Media, System.Windows.Media.Imagingの中にちょっとだけある。ほぼWPF専用なのではないかという予感…| クラス / 構造体 | 概要 |
|---|---|
| ColorConvertedBitmap | WICで一度だけ色変換できるBitmapSource。微妙MarkupExtensionもあるよ。 |
| ColorContext | ICCプロファイル的なやつ。 |
| Color | sRGB/scRGBカラーを扱う。挙動が微妙なこともあり、カラマネ的には役に立たない可能性が。 |
| BitmapFrameと各種Encoder/Decoder | 画像ファイルを取り扱うクラス群。画像プロファイルも読み書きしてくれるっぽい。中身はWICの模様。 |
System.Windows.MediaがICMに対応して、System.Windows.Media.ImagingがWICに対応するイメージなのかな?ColorContextと、変換したいBitmapSourceを指定して色変換できる。BitmapSourceを継承してるので、Image.Sourceとかに指定できる。IWICColorTransformを使ってる。ColorContextHelperを通してICMのOpenColorProfile()とGetColorProfileHeader()を利用している。PixelFormatを指定して初期化することでsRGBとかscRGBのColorContextを取得できることになっているが、実際に取得されるのは コントロールパネル>色の管理>詳細設定>デバイスプロファイル に設定されているプロファイルだったり。
GetStandardColorSpaceProfile()を利用しているからで、sRGBのプロファイルIDを指定しているにもかかわらず上記のような結果になるという謎挙動が原因である。FromValues()およびFromAValues()にてColorContextを指定できるが、これは非常にややこしいことに「指定されたColorContext」→「既定のデバイスプロファイル(大抵はsRGB)」という変換となる。
ColorContextのRGB」を表す型なのかと思ってたら全然違った。ComputeScRgbValues()というprivate methodの中で、PixelFormats.Bgra32を用いて変換先ColorContextを初期化しており、このソースを見る限りは本当はsRGBを変換先とするつもりっぽいのだけど、上記ColorContextの謎挙動により既定のデバイスプロファイルが変換先となってしまっている。ColorTransformというinternal classを使っている。それ使わせてくれよ…
ColorTransformは、ColorTransformHelperを経由してICMのCreateMultiProfileTransform()とTranslateColors()をやってくれるクラス。System.Windows.Media.Imagingは大体WICと同じ雰囲気っぽい?IWICColorTransformとかは使わせてくれない微妙な感じ…BitmapFrame.Create時などにBitmapCreateOptions.IgnoreColorProfileを指定していないと、埋め込まれた画像プロファイルからsRGB (これも同様にデバイスプロファイルかも知れない) へ変換される
ColorContexts[0]はsRGBに置き換えられず、そのままであるColorConvertedBitmapに食わせると、二重に変換されたりして悲しい思いをするBitmapCreateOptions.IgnoreColorProfileを指定した場合、元のカラースペースを保持した状態で読み込まれるBitmapFrame.Createする際にBitmapCreateOptions.PreservePixelFormatを指定していない場合も、RGB PixelFormatへ自動変換される
ColorContexts[0]はCMYKプロファイルのままであるBitmapCacheOption.None以外で読み込んだ場合、その時に指定されたBitmapCreateOptionsで画像がキャッシュされ、再読込時のBitmapCreateOptionsは無視される
BitmapCacheOption.OnLoadが必要な点に注意EnumDisplayMonitors()とGetMonitorInfo()でMONITORINFOEX取得CreateDC()でデバイスコンテキスト取得GetICMProfile()でプロファイルパス取得懐かしの妹。。
何やら発売日より1日早く届きました。
付属の同人誌的なものが付いているのですが、オリキャラでこういうのは嬉しいですね。
全体的に割と無難によく出来てます。
克氏のものでは初期には奇抜な抱き枕カバーがいくらかありましたが、最近はいい感じのものが多いですね。素晴らしい。
ODAC 12c Release 3 からNuGetで公式から配布されるようになった