1 名前:デフォルトの名無しさん mailto:sage [2018/08/05(日) 19:55:44.50 ID:tZmoj8I+.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■関連スレ C#, C♯, C#相談室 Part93 https://mevius.5ch.net/test/read.cgi/tech/1492818720/ ■前スレ ふらっと C#,C♯,C#(初心者用) Part138 https://mevius.5ch.net/test/read.cgi/tech/1528194762/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/ja-jp/library/gg145045.aspx https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/
110 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 00:50:51.67 ID:1ei+2zpw.net] 最初の設計がおかしかったからこんなことになった using使えるような新しいライブラリを出してこないMSが悪い pythonだったらpython的でないと言う理由で新しいライブラリが出てくる
111 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 01:07:05.30 ID:krr9M76P.net] >>101 ファイルの利用が終わったのにすぐにファイルハンドルを解放しないとか不便でしょうが
112 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 01:46:45.25 ID:2ZNryZEm.net] >>104 ドキュメントコメントは内部設計なの? サイトによって言ってること違って混乱してる 内部設計書=詳細設計書と書いてるところもあれば、 内部設計書=複数の処理の流れ、詳細設計書=ドキュメントコメントってところもある 自然言語でコード書いた奴は見当違いで本来必要の無い何かって認識だった。会社と人によって違うのかな
113 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 02:00:13.53 ID:lLRe5osi.net] >>108 詳細設計はCOBOL時代の名残りだ パンチカードや80x24文字の画面でコーディングしてた頃はソースコードは純粋なアウトプットであり、 ソース上で試行錯誤したりソース眺めながらコミュニケーションしたりするなんていう発想は無かったの プログラミングはタイピングの前に完了していなければならず、詳細設計を作成することこそが今でいうコーディング工程そのものだったんだよ 本来全く必要のないもの、でまさに正しいんだよ
114 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 02:01:33.41 ID:NrpzP/Hk.net] >>106 HttpClientFactoryも知らないおじいちゃんこんにちは
115 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 07:18:27.76 ID:K3bJIWvH.net] >>103 答えはNO 内部・詳細設計書はゴミのように不要どころか持ってると邪魔なものだけど客は金を出してくれる ビジネスでやる以上金になるほうを選ぶのが当然
116 名前:デフォルトの名無しさん [2018/08/21(火) 09:21:19.00 ID:6+/Jo0uy.net] 設計書ネタはスレちがくね?
117 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 09:58:08.14 ID:eCXr2PsD.net] 質問者すらそう言ってるが 言及したがりのバカが沸いたからしゃーない
118 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 10:26:32.76 ID:UjHMgN47.net] しかも最初の疑問点からずれた話題だけを掘り下げるという意味不明な状態
119 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 12:27:18.26 ID:DYb1gEuJ.net] Win32API関数でのエラー処理について質問です var DllFilePath = "hogehoge.dll"; handle = LoadLibrary(DllFilePath); if (handle == IntPtr.Zero) { throw new System.ComponentModel.Win32Exception(); } ↑のコードで例外をthrowするときに例外のMessageにDllFilePathの値を追加したいのですが throw new System.ComponentModel.Win32Exception(DllFilePath) とすると本来のエラーメッセージが上書きされてしまいます。 var DllFilePath = "hogehoge.dll"; try { handle = LoadLibrary(DllFilePath); if (handle == IntPtr.Zero) { throw new System.ComponentModel.Win32Exception(); } } catch(System.ComponentModel.Win32Exception e) { throw new System.ComponentModel.Win32Exception($"{e.Message} \"{DllFileName}\"", e); } こうすれば期待通りの内容にできるのですがAPI呼び出しの度に例外処理を書くのは コードが冗長になってしまうし何より面倒なのでうまいこと簡単に書けないか悩んでいます。 何かいい方法は無いですかね?
120 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 12:58:43.22 ID:GmRbaMy/.net] >>115 Win32Exceptionを継承して使う
121 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 13:00:35.25 ID:Ua1FlSB5.net] >>115 public class LoadLibraryFailedException : Win32Exception { public LoadLibraryFailedException (string path) { DllPath = path; } public string DllPath {get; private set; } ... }
122 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 14:32:10.34 ID:DYb1gEuJ.net] Messageに情報を足すことばかりが頭にあって 情報を別のプロパティに持たせる発想がなかった… こっちのほうがcatchする側で融通が利かせやすいし クラスやプロパティの名前を調整すればLoadLibraryに限らず 他のAPI呼び出しにも汎用的に使えそうでいいですね この方法で検討してみます。ありがとうございました
123 名前:デフォルトの名無しさん [2018/08/23(木) 11:52:17.79 ID:+a3jfYk1.net] すんません初歩駅な質問なんですが フォームアプリのコントロールに ボリュームやスライダーのような可変データコントロールは無いのでしょうか? 似たのはNumericUpDownがありますが・・・ これの画像を差し替えてボリューム風にしろってことですか?
124 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 12:20:54.20 ID:Qdf2BjgW.net] >>119 トラックバー
125 名前:デフォルトの名無しさん [2018/08/23(木) 12:40:46.09 ID:+a3jfYk1.net] >>120 おお!「コモンコントロール」にも他カテゴリにも無いコントロールがあったのか! 完全に見落としてました ところでこれの画像を差し替えて丸型回転ノブにすることはできるんでしょうか? まだ勉強不足でよくわかってないのですが Imageプロパティとか無いからできないかな?
126 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 13:36:36.72 ID:XFHRsDpy.net] ノブに変えるのは おお難しいんじゃあ〜
127 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 13:42:16.42 ID:OU0cRkrI.net] 初心者に回転ノブの実装は難しいと思う ってか使いにくいだろ
128 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 13:58:21.08 ID:oqmXoghj.net] >>121 画像だけで済まないでしょそれ そんな形で回転するコントロールは無いので一から自作しないと >>123 マウスホイール部分で動かすのならともかくドラッグで操作するものとか考えただけで頭痛くなる
129 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 14:11:46.80 ID:YLcqAqh8.net] volatile キーワードの役割がどうしても理解できないので教えてください。 自分の考えでは、以下のようなプログラムを最適化ありでコンパイルして実行すると while (loop) ; のループから抜け出すことができないから volatile キーワードが役に立つのかと思ったのですが、 残念ながら(?)実際に試すと普通にループを抜け出せてしまいました。 class Program { static bool loop = true; static void Main(string[] args) { new Thread(() => { Thread.Sleep(1000); loop = false; }).Start(); while (loop) ; Console.WriteLine("End"); } } そもそも、volatile がある場合とない場合で動作が変わるコードを ただの1つも作り出すことができていない状態なので、 何か volatile の役割を示すコードの例を示していただけると嬉しいです。 よろしくお願いします。
130 名前:デフォルトの名無しさん [2018/08/23(木) 15:15:56.49 ID:MTIo/8hT.net] >>122-124 むむむ画像の差し替えだけじゃ回転ノブは難しいのか! C#というのは在り物のコントロールをそのまま使って工夫するものなんですかね?
131 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 15:23:55.44 ID:7meTQdNO.net] マジレスするとメッセージ捕まえて 自力で描画すれば可能なんだけど 労
132 名前:力に見会わないのでお勧めしない webやWPF, UWPならグラ弄るの簡単 [] [ここ壊れてます]
133 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 15:58:07.77 ID:yzuHUqjv.net] 労力かけてそんな使いにくいUI作る必要ないだろ
134 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 19:00:57.46 ID:4aOJVToK.net] たぶん音量調整とかしたいんだろうけど そんなui見かけないのは使いづらいからでは?
135 名前:デフォルトの名無しさん [2018/08/23(木) 19:45:13.80 ID:/L2wlbg3.net] regionの適切な使い方って結局どうすんのがいいんだ? 独学だし人のあんま見たことないからよくわからん
136 名前:デフォルトの名無しさん [2018/08/23(木) 19:50:59.55 ID:Hj0kcImk.net] 折れ線グラフとか棒グラフとか 3Dで立体的に表示できる機能なんかない? 開いたら開始地点から現在の値のトコまで棒が伸びていくアニメーションとか リッチ感だしたいんだけど
137 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 21:01:34.44 ID:IbEC1I+s.net] GDI+よりWPFが簡単とはまったく思わんなあw >>129 XPの時代はそういうUIが結構あった。 >>126 ボリュームの位置(値)を、例えば小さな丸で示す実装なら超簡単でしょう。
138 名前:デフォルトの名無しさん [2018/08/23(木) 23:07:37.52 ID:nqcPx5oZ.net] 自分の作ったプログラムをウェブで公開したいのですが、完全に独学のため、 リリース用のビルドをするにあたっての注意点がよくわかりません。 このウェブサイトにあるように、単純にリリースビルドすればそれでいいのでしょうか? 第5回 Windowsアプリケーションのデバッグ&リリース (5/5):連載簡単!Visual Studio .NET入門 - @IT www.atmarkit.co.jp/ait/articles/0410/13/news100_5.html また、リリースビルドした場合、デバッグ不足で予期しないエラーが発生した場合、何行目にエラーがあるとかそういう表示って出てこなくなるのですか?
139 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:19:35.02 ID:S0ZPdzES.net] >>132 回転はどうするのwってのは置いておくとして超簡単って書くのなら方法示したほうがいいと思う >>133 公開するのならビルドした.Netのバージョンを必ず明記すること .Net以外の外部DLL等参照している場合はそれも書くこと >何行目にエラーがあるとかそういう表示って出てこなくなるのですか? はい
140 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:24:55.20 ID:AuVZlFM/.net] >>134 PDBの設定によるやろ…
141 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:55:38.28 ID:OU0cRkrI.net] >>133 pdbファイルも一緒に配布すればrelease版でも例外発生箇所を表示できる
142 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:57:41.73 ID:AuVZlFM/.net] >>136 リリースビルド時のフルパスがPDBに含まれないようにするのってどうやるんだっけ?
143 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:17:32.21 ID:uCffaOwh.net] >>137 [ビルド]-[出力]-[詳細設定]-[デバッグ情報]を「なし」に設定
144 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 07:41:58.39 ID:uu5lHyZK.net] フォーマット指定の方法なんだけど ("id:{0}",変数)みたい0とかのインデックス指定なしに 記載する方法ってなかったっけ? こんな感じ ("id:{}",変数) あったような気がするのだが見つからない
145 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:05:28.79 ID:1zvoR5Nf.net] >>139 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/tokens/interpolated
146 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:16:29.54 ID:srP6ovAZ.net] >>139 文字列補完? $"Id:{変数}"
147 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:23:14.01 ID:fKyaBZGN.net] 計算処理クラスは自動テスト実現のため一時変数以外のインスタンスを持たせない という方針を聞いたんですけどC#に例えるとどういう事ですか? 独り派遣で聞く人もおらず困っています
148 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:53:09.08 ID:ucGkXF3f.net] なぜその方針を作った
149 名前:、の人に直接聞かないの 理解せずに間違ったことやったら最終的に叱られるのは君じゃないの?w こういう人が2chで「コミュニケーションスキルガー」とか被害妄想全開で吠えてるんだろうなあ [] [ここ壊れてます]
150 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:54:55.58 ID:/eex7TkL.net] 2chとかいつの時代だよ
151 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 13:47:23.02 ID:7bl9vxOR.net] 未来から来てる可能性だってあるじゃないか
152 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:00:43.60 ID:ILYVISJ2.net] 状態を持たせずに純粋関数にした方が バグが減って保守やテストがしやすいってことじゃろ Mathクラスみたいに
153 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:28:08.95 ID:cHge5Sdm.net] メソッドを全部staticにしたらいいんじゃね もちろんstaticな変数は持たない utilクラスみたいなもんだと思えば
154 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:41:00.57 ID:qtcVVPQQ.net] それやるならstatic classってのがc#にはあったような
155 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:06:07.87 ID:7htaPF/P.net] メソッドやクラスをstaticにしたところで他のクラスのインスタンスへの依存は防げないだろ 計算処理クラスなんてものが生み出されるようなレベルの現場だと、 ヘタにstatic強制なんかしたらstaticフィールドに状態持たせるバカが増えて余計に酷い状況になりそう
156 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:54:49.70 ID:g1+rhs2E.net] >>143 それ書いた人はもう居ないです いつもイライラして椅子蹴ってくる正社員リーダーとは恐怖でこちらから話せません
157 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:56:51.04 ID:q0UJEScu.net] Utilクラスってゴミ箱になりがちだから嫌いだわ。 計算処理クラスはなんとなく気持ちはわかるが。 delegateでは微妙に表現力が足りないから特定のinterface実装したクラスを受けるようにして、その引数と型を渡せばネットワーク上のどこかでインスタンスが起こされて実行されるようにした、みたいなケースじゃないの? テストではないけど、ジョブスケジューラがdll名と引数をキューから拾って、appdomain切って動的にそのクラスを実装したdllを読み込んで実行してくれる、みたいなのは作ったことある。
158 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 18:01:21.93 ID:g1+rhs2E.net] >>149 処理をクラスにするって古い考えなのでしょうか 自分はDDD的な知識のクラスを構成するクラスも作りますが、そんなものは作らんのが流行りなのかと気になります
159 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 18:44:47.51 ID:h3eX92xO.net] >>134 >>136 ありがとうございます。やってみます
160 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:20:46.35 ID:s18ZTF9u.net] >>150 マジで底辺のリーダーってこんなんがほとんどなの?こええ
161 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:36:31.86 ID:n2aXOJxU.net] staticなナントカUtilクラスはJavaドカが好むよねー staticなのに内部でインフラ異存しまくっててキレそうになるよ
162 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:32:41.02 ID:KbP5R+D4.net] 失礼します。 ASP.NET MVC又はASP.NET MVC CoreのRazorビューから匿名型がサポートされない理由を説明してくださる方居ますか?
163 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:36:20.82 ID:usF07bpd.net] >>156 これのこと? https://stackoverflow.com/questions/5120317/dynamic-anonymous-type-in-razor-causes-runtimebinderexception
164 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 00:04:54.82 ID:K7SavMc/.net] >>157 はい。 .frameworkがpoorなのでサポート出来ない事が私には理解できません。 こちらのurlの記事では普通にプロパティで取得出来ているように見えますが… architect-wat.hatenablog.jp/entry/20130501/1367415654
165 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 09:58:42.90 ID:uF3Ar+0r.net] >>158 匿名型なんて使わなきゃいい
166 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:34:07.64 ID:ZJ6IWHAy.net] c#アプリって簡単に逆コンパイルで簡単にソース見れちゃうじゃん? 例えばAPIキーとかハードコーディングしてもしてなくても抜き出せてしまうけどどうすんの?
167 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:41:36.20 ID:ajbZjNWE.net] >>160 リバースエンジニアリングはどのくらいの労力がかかるかだけの違いで解析できないものなんかないから諦めろ
168 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:57:01.93 ID:Z58Bgt4H.net] >>160 ハッシュ値使うねん
169 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 20:08:24.14 ID:6fvgv2wi.net] >>162 ハッシュからAPIキーは復元できないでしょ
170 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 20:21:29.85 ID:nj06+sqx.net] >>160 環境変数
171 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 20:50:49.58 ID:J4BiRy9W.net] 200週くらい周回遅れの話題だ
172 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 21:51:49.34 ID:uGtRYhlb.net] >>163 間接的に別なのから取得するとか
173 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 21:53:27.00 ID:Y3DnwOBx.net] >>165 結論はどうなってるの? どうしようもない?
174 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 21:53:40.13 ID:Y3DnwOBx.net] >>166 どういうこと?
175 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 09:06:38.21 ID:mvt+Dc+2.net] >>159 問題はEFで匿名型が簡単に作られてしまうのが問題ですね。 結局expandoobjectに変換するか、ViewModelを毎回作るしか無さそうですね。
176 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 09:44:13.36 ID:O9adGcKd.net] >>167 要件による サーバーからもらうとか
177 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:36:40.81 ID:KYhaaDP0.net] >>161 まあそうだけど >>164 ふむふむ >>170 まあそれだね てかそれやってるんだけど超めんどい
178 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:41:52.49 ID:d3emHXQQ.net] >>170 サーバーから貰うときの認証は?
179 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:45:24.17 ID:MAg8NxfR.net] >>172 認証のパスワードなどの手続を登録した人に別途配布
180 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:48:09.71 ID:mLZLsxB6.net] サーバーから受け取るようにしたとしてもクライアントが丸見えなら同じ方法でサーバーからキー抜けるだろ ちゃんとやるなら、開発者だけが知ってる秘密鍵でシリアルキー作ってクライアントごとに払い出すようにする そしてサーバー側でシリアルキーに基づいてクライアントを識別し、クライアント単位でクォータや権限の制御をする 漏れる前提で他のクライアントに影響が出ないように設計するのが基本的な戦略だよ
181 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:55:18.75 ID:IHY0+SV3.net] どうでもいいけど、もともとの質問の趣旨は ネイティブコードと同程度の秘匿性でバイナリにデータを隠せるかじゃないの? それは無理、で終わりだと思うけど。
182 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:56:47.03 ID:g9QDbTAC.net] APIキーって5chのAPIみたいなの想像してたけど違うの? それだとクライアント毎に払い出しても誰か一人のがばれたら使用権貰えちゃうけど
183 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:57:13.81 ID:mLZLsxB6.net] >>175 APIキーを抜くくらいならネイティブでも難しくないよ
184 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 13:13:33.45 ID:mLZLsxB6.net] >>176 それで困るのは5chではなくブラウザの開発者だろ? 5chにとっては、特定のクライアント(この場合は開発者単位な)からの不正な大量投稿があれば、 そのクライアント(開発者)を丸ごとBANしてしまえばいい。他のクライアント(開発者)には影響しない。それを防ぐ責任はあくまでクライアントの開発者にある。 ユーザー単位で
185 名前:払い出すにしろ開発者単位て払い出すにしろ、個別に払い出すことで責任をAPIキーを払い出された側に転嫁できるんだよ。 [] [ここ壊れてます]
186 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 13:14:28.64 ID:fHWcXfSA.net] >>178 なるほど
187 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 13:22:20.16 ID:KYhaaDP0.net] ソースコード丸見えだから、APIキーがどこにあるかわかるよね そうやって海賊版作れてしまうわけだ
188 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 14:46:35.94 ID:VBsyc88B.net] 流石にAPIキーを普通に文字列で書くアホはnativeでも居ないだろ。 難読化する。 ソースコードが丸見えだとしても問題無い気はする。どーせnativeでも逆アセンブルするんだし。 カジュアルな対策なら、c#には逆コンパイルされないILコード使って復号ロジック書くべきかと思うな。 ちゃんとやるならドングルかライセンスサーバのどっちかじゃねえかな。
189 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 16:44:19.57 ID:Aux3ZmsD.net] nativeと同程度の隠匿で良いならそこだけnativeにすれば良いだけやん
190 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 16:46:40.21 ID:UH8BRHfz.net] oauthのキーなら速攻でばれるし文字列でそのまま書くな。難読かしても意味ねぇし。やるだけ無駄。
191 名前:デフォルトの名無しさん [2018/08/26(日) 16:48:17.70 ID:7VY92v0a.net] DBのパスワードとかソースに直書きしてるわ ハッシュにしてもどこで復号すればいいのか
192 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:33:04.42 ID:Lq+jppE1.net] 自前でやるだけのセキュリティのスキルがあるとこは珍しい 素直にASP.NET Identity + IdentityServerでOIDC使っとくのが懸命な判断
193 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:45:57.13 ID:6lhNHki6.net] こういう大事な部分を手軽で強固なセキュリティとしてなんでMSは用意しておかないんだ?
194 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:47:36.13 ID:vKa62JvF.net] はい意味不明 OIDCってアプリ側がユーザーの認証認可をする仕組みだぞ? それをどうクライアントアプリのAPIキーの隠蔽に使うのか教えてくれ
195 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:47:37.20 ID:86UvKUWS.net] >>186 もうすでにC#関係なくなっているが手軽で強固なやり方ってどんなことよ?
196 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:49:20.77 ID:vKa62JvF.net] >>186 本質的に不可能だからだよ 見られたくないならクライアントに埋め込まずにサーバーに持ってプロキシせよってこと
197 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:49:59.20 ID:6lhNHki6.net] まあそれよりもソースを復元できるのが問題だわな
198 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:50:52.91 ID:O9adGcKd.net] >>172 マシンに固定したいならMACアドレスとかHDDのシリアル番号とかで特定 ユーザーに固定するなら登録されたパスワードを定期的に入力とか
199 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:51:50.11 ID:86UvKUWS.net] >>190 中間言語形式だけでなくスクリプト言語も否定する気かw
200 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:54:18.49 ID:Lq+jppE1.net] >>187 チュートリアルもやったことないのかよ…
201 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:56:14.36 ID:vKa62JvF.net] >>193 だから何のことを言ってるんだ アプリ本体がユーザーの手元にあるのに認証認可もクソもないわ
202 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:57:02.40 ID:6lhNHki6.net] >>192 サーバー型はビジネスロジックがサーバー内にあるからそこで防げるけど、c#アプリは無理じゃん
203 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 18:00:17.07 ID:O9adGcKd.net] >>186 それなりには用意してる お前らが使わねーだけ https://docs.microsoft.com/ja-jp/windows/uwp/security/intro-to-secure-windows-app-development
204 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 18:02:46.79 ID:6lhNHki6.net] >>196 UWPじゃなくFormアプリでおねがい
205 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 18:04:53.73 ID:vKa62JvF.net] >>196 これユーザーが入力した認証情報を安全に保持するのと、サーバー側のリソースに関するユーザーの認証認可をする話だよね 開発者の機密情報を安全にクライアントに持たせるのとは全く別の問題だよ(そしてそれは原理的に不可能)
206 名前:198 mailto:sage [2018/08/26(日) 18:15:55.92 ID:vKa62JvF.net] もちろんクライアント側で復号する必要がなくて、単にデータストアをクライアント側に置きたいだけなら、サーバー側で暗号化すればいいだけだよ 原理的に不可能なのはクライアント側でも機密情報を復号して使う必要がある場合の話ね
207 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 18:22:46.80 ID:wR7TFJf0.net] こんな解説しないと分からないってのが信じられん
208 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 18:40:28.29 ID:O9adGcKd.net] >>198 だから「それなり」って書いてあるだろ
209 名前:デフォルトの名無しさん [2018/08/26(日) 23:06:54.05 ID:BDbiNYg/.net] Dapperを使用するにあたり、下記の「DAO」クラスの「SelectDAO」メソッドの 戻り値を抽象的に表現できれば、SQL与えるだけで共通に使えるのになと思っているのですが 戻り値を下記のList<IAB>のように書く方法はあるでしょうか? interface IAB{ } public class A : IAB { public string nen{ get; set; } } public class B : IAB { public string nen{ get; set; } } public class DAO { public List<IAB> SelectDAO(string sql) { System.Data.IDbConnection _con = new SqlConnection("接続文字列"); return (List<IAB>)_con.Query<IAB>(sql);//DynamicMethodに対する型オーナーが無効です。 と怒られます。 } }
210 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 23:10:18.71 ID:iDr2keD8.net] >>202 いやSQLを隠蔽するのがDAOなのにSQL渡したらダメだろ…