「どんなにくだらない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/
■コードを貼る場合は↓を使いましょう。
http://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
http://referencesource.microsoft.com/
ふらっと C#,C♯,C#(初心者用) Part139
■ このスレッドは過去ログ倉庫に格納されています
2018/08/05(日) 19:55:44.50ID:tZmoj8I+
105デフォルトの名無しさん
2018/08/21(火) 00:46:11.78ID:Fn3PsyHg >>102
日本語読めます?
日本語読めます?
106デフォルトの名無しさん
2018/08/21(火) 00:50:51.67ID:1ei+2zpw 最初の設計がおかしかったからこんなことになった
using使えるような新しいライブラリを出してこないMSが悪い
pythonだったらpython的でないと言う理由で新しいライブラリが出てくる
using使えるような新しいライブラリを出してこないMSが悪い
pythonだったらpython的でないと言う理由で新しいライブラリが出てくる
107デフォルトの名無しさん
2018/08/21(火) 01:07:05.30ID:krr9M76P >>101
ファイルの利用が終わったのにすぐにファイルハンドルを解放しないとか不便でしょうが
ファイルの利用が終わったのにすぐにファイルハンドルを解放しないとか不便でしょうが
108デフォルトの名無しさん
2018/08/21(火) 01:46:45.25ID:2ZNryZEm >>104
ドキュメントコメントは内部設計なの?
サイトによって言ってること違って混乱してる
内部設計書=詳細設計書と書いてるところもあれば、
内部設計書=複数の処理の流れ、詳細設計書=ドキュメントコメントってところもある
自然言語でコード書いた奴は見当違いで本来必要の無い何かって認識だった。会社と人によって違うのかな
ドキュメントコメントは内部設計なの?
サイトによって言ってること違って混乱してる
内部設計書=詳細設計書と書いてるところもあれば、
内部設計書=複数の処理の流れ、詳細設計書=ドキュメントコメントってところもある
自然言語でコード書いた奴は見当違いで本来必要の無い何かって認識だった。会社と人によって違うのかな
109デフォルトの名無しさん
2018/08/21(火) 02:00:13.53ID:lLRe5osi >>108
詳細設計はCOBOL時代の名残りだ
パンチカードや80x24文字の画面でコーディングしてた頃はソースコードは純粋なアウトプットであり、
ソース上で試行錯誤したりソース眺めながらコミュニケーションしたりするなんていう発想は無かったの
プログラミングはタイピングの前に完了していなければならず、詳細設計を作成することこそが今でいうコーディング工程そのものだったんだよ
本来全く必要のないもの、でまさに正しいんだよ
詳細設計はCOBOL時代の名残りだ
パンチカードや80x24文字の画面でコーディングしてた頃はソースコードは純粋なアウトプットであり、
ソース上で試行錯誤したりソース眺めながらコミュニケーションしたりするなんていう発想は無かったの
プログラミングはタイピングの前に完了していなければならず、詳細設計を作成することこそが今でいうコーディング工程そのものだったんだよ
本来全く必要のないもの、でまさに正しいんだよ
110デフォルトの名無しさん
2018/08/21(火) 02:01:33.41ID:NrpzP/Hk >>106
HttpClientFactoryも知らないおじいちゃんこんにちは
HttpClientFactoryも知らないおじいちゃんこんにちは
111デフォルトの名無しさん
2018/08/21(火) 07:18:27.76ID:K3bJIWvH112デフォルトの名無しさん
2018/08/21(火) 09:21:19.00ID:6+/Jo0uy 設計書ネタはスレちがくね?
113デフォルトの名無しさん
2018/08/21(火) 09:58:08.14ID:eCXr2PsD 質問者すらそう言ってるが
言及したがりのバカが沸いたからしゃーない
言及したがりのバカが沸いたからしゃーない
114デフォルトの名無しさん
2018/08/21(火) 10:26:32.76ID:UjHMgN47 しかも最初の疑問点からずれた話題だけを掘り下げるという意味不明な状態
115デフォルトの名無しさん
2018/08/22(水) 12:27:18.26ID:DYb1gEuJ 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呼び出しの度に例外処理を書くのは
コードが冗長になってしまうし何より面倒なのでうまいこと簡単に書けないか悩んでいます。
何かいい方法は無いですかね?
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呼び出しの度に例外処理を書くのは
コードが冗長になってしまうし何より面倒なのでうまいこと簡単に書けないか悩んでいます。
何かいい方法は無いですかね?
116デフォルトの名無しさん
2018/08/22(水) 12:58:43.22ID:GmRbaMy/ >>115
Win32Exceptionを継承して使う
Win32Exceptionを継承して使う
117デフォルトの名無しさん
2018/08/22(水) 13:00:35.25ID:Ua1FlSB5 >>115
public class LoadLibraryFailedException : Win32Exception
{
public LoadLibraryFailedException (string path)
{ DllPath = path; }
public string DllPath {get; private set; }
...
}
public class LoadLibraryFailedException : Win32Exception
{
public LoadLibraryFailedException (string path)
{ DllPath = path; }
public string DllPath {get; private set; }
...
}
118デフォルトの名無しさん
2018/08/22(水) 14:32:10.34ID:DYb1gEuJ Messageに情報を足すことばかりが頭にあって
情報を別のプロパティに持たせる発想がなかった…
こっちのほうがcatchする側で融通が利かせやすいし
クラスやプロパティの名前を調整すればLoadLibraryに限らず
他のAPI呼び出しにも汎用的に使えそうでいいですね
この方法で検討してみます。ありがとうございました
情報を別のプロパティに持たせる発想がなかった…
こっちのほうがcatchする側で融通が利かせやすいし
クラスやプロパティの名前を調整すればLoadLibraryに限らず
他のAPI呼び出しにも汎用的に使えそうでいいですね
この方法で検討してみます。ありがとうございました
119デフォルトの名無しさん
2018/08/23(木) 11:52:17.79ID:+a3jfYk1 すんません初歩駅な質問なんですが
フォームアプリのコントロールに
ボリュームやスライダーのような可変データコントロールは無いのでしょうか?
似たのはNumericUpDownがありますが・・・
これの画像を差し替えてボリューム風にしろってことですか?
フォームアプリのコントロールに
ボリュームやスライダーのような可変データコントロールは無いのでしょうか?
似たのはNumericUpDownがありますが・・・
これの画像を差し替えてボリューム風にしろってことですか?
120デフォルトの名無しさん
2018/08/23(木) 12:20:54.20ID:Qdf2BjgW >>119
トラックバー
トラックバー
121デフォルトの名無しさん
2018/08/23(木) 12:40:46.09ID:+a3jfYk1 >>120
おお!「コモンコントロール」にも他カテゴリにも無いコントロールがあったのか!
完全に見落としてました
ところでこれの画像を差し替えて丸型回転ノブにすることはできるんでしょうか?
まだ勉強不足でよくわかってないのですが
Imageプロパティとか無いからできないかな?
おお!「コモンコントロール」にも他カテゴリにも無いコントロールがあったのか!
完全に見落としてました
ところでこれの画像を差し替えて丸型回転ノブにすることはできるんでしょうか?
まだ勉強不足でよくわかってないのですが
Imageプロパティとか無いからできないかな?
122デフォルトの名無しさん
2018/08/23(木) 13:36:36.72ID:XFHRsDpy ノブに変えるのは
おお難しいんじゃあ〜
おお難しいんじゃあ〜
123デフォルトの名無しさん
2018/08/23(木) 13:42:16.42ID:OU0cRkrI 初心者に回転ノブの実装は難しいと思う
ってか使いにくいだろ
ってか使いにくいだろ
124デフォルトの名無しさん
2018/08/23(木) 13:58:21.08ID:oqmXoghj125デフォルトの名無しさん
2018/08/23(木) 14:11:46.80ID:YLcqAqh8 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 の役割を示すコードの例を示していただけると嬉しいです。
よろしくお願いします。
自分の考えでは、以下のようなプログラムを最適化ありでコンパイルして実行すると
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 の役割を示すコードの例を示していただけると嬉しいです。
よろしくお願いします。
126デフォルトの名無しさん
2018/08/23(木) 15:15:56.49ID:MTIo/8hT127デフォルトの名無しさん
2018/08/23(木) 15:23:55.44ID:7meTQdNO マジレスするとメッセージ捕まえて
自力で描画すれば可能なんだけど
労力に見会わないのでお勧めしない
webやWPF, UWPならグラ弄るの簡単
自力で描画すれば可能なんだけど
労力に見会わないのでお勧めしない
webやWPF, UWPならグラ弄るの簡単
128デフォルトの名無しさん
2018/08/23(木) 15:58:07.77ID:yzuHUqjv 労力かけてそんな使いにくいUI作る必要ないだろ
129デフォルトの名無しさん
2018/08/23(木) 19:00:57.46ID:4aOJVToK たぶん音量調整とかしたいんだろうけど
そんなui見かけないのは使いづらいからでは?
そんなui見かけないのは使いづらいからでは?
130デフォルトの名無しさん
2018/08/23(木) 19:45:13.80ID:/L2wlbg3 regionの適切な使い方って結局どうすんのがいいんだ?
独学だし人のあんま見たことないからよくわからん
独学だし人のあんま見たことないからよくわからん
131デフォルトの名無しさん
2018/08/23(木) 19:50:59.55ID:Hj0kcImk 折れ線グラフとか棒グラフとか
3Dで立体的に表示できる機能なんかない?
開いたら開始地点から現在の値のトコまで棒が伸びていくアニメーションとか
リッチ感だしたいんだけど
3Dで立体的に表示できる機能なんかない?
開いたら開始地点から現在の値のトコまで棒が伸びていくアニメーションとか
リッチ感だしたいんだけど
132デフォルトの名無しさん
2018/08/23(木) 21:01:34.44ID:IbEC1I+s133デフォルトの名無しさん
2018/08/23(木) 23:07:37.52ID:nqcPx5oZ 自分の作ったプログラムをウェブで公開したいのですが、完全に独学のため、
リリース用のビルドをするにあたっての注意点がよくわかりません。
このウェブサイトにあるように、単純にリリースビルドすればそれでいいのでしょうか?
第5回 Windowsアプリケーションのデバッグ&リリース (5/5):連載簡単!Visual Studio .NET入門 - @IT
http://www.atmarkit.co.jp/ait/articles/0410/13/news100_5.html
また、リリースビルドした場合、デバッグ不足で予期しないエラーが発生した場合、何行目にエラーがあるとかそういう表示って出てこなくなるのですか?
リリース用のビルドをするにあたっての注意点がよくわかりません。
このウェブサイトにあるように、単純にリリースビルドすればそれでいいのでしょうか?
第5回 Windowsアプリケーションのデバッグ&リリース (5/5):連載簡単!Visual Studio .NET入門 - @IT
http://www.atmarkit.co.jp/ait/articles/0410/13/news100_5.html
また、リリースビルドした場合、デバッグ不足で予期しないエラーが発生した場合、何行目にエラーがあるとかそういう表示って出てこなくなるのですか?
134デフォルトの名無しさん
2018/08/23(木) 23:19:35.02ID:S0ZPdzES135デフォルトの名無しさん
2018/08/23(木) 23:24:55.20ID:AuVZlFM/ >>134
PDBの設定によるやろ…
PDBの設定によるやろ…
136デフォルトの名無しさん
2018/08/23(木) 23:55:38.28ID:OU0cRkrI >>133
pdbファイルも一緒に配布すればrelease版でも例外発生箇所を表示できる
pdbファイルも一緒に配布すればrelease版でも例外発生箇所を表示できる
137デフォルトの名無しさん
2018/08/23(木) 23:57:41.73ID:AuVZlFM/ >>136
リリースビルド時のフルパスがPDBに含まれないようにするのってどうやるんだっけ?
リリースビルド時のフルパスがPDBに含まれないようにするのってどうやるんだっけ?
138デフォルトの名無しさん
2018/08/24(金) 00:17:32.21ID:uCffaOwh >>137
[ビルド]-[出力]-[詳細設定]-[デバッグ情報]を「なし」に設定
[ビルド]-[出力]-[詳細設定]-[デバッグ情報]を「なし」に設定
139デフォルトの名無しさん
2018/08/24(金) 07:41:58.39ID:uu5lHyZK フォーマット指定の方法なんだけど
("id:{0}",変数)みたい0とかのインデックス指定なしに
記載する方法ってなかったっけ?
こんな感じ
("id:{}",変数)
あったような気がするのだが見つからない
("id:{0}",変数)みたい0とかのインデックス指定なしに
記載する方法ってなかったっけ?
こんな感じ
("id:{}",変数)
あったような気がするのだが見つからない
140デフォルトの名無しさん
2018/08/24(金) 08:05:28.79ID:1zvoR5Nf141デフォルトの名無しさん
2018/08/24(金) 08:16:29.54ID:srP6ovAZ142デフォルトの名無しさん
2018/08/24(金) 12:23:14.01ID:fKyaBZGN 計算処理クラスは自動テスト実現のため一時変数以外のインスタンスを持たせない
という方針を聞いたんですけどC#に例えるとどういう事ですか?
独り派遣で聞く人もおらず困っています
という方針を聞いたんですけどC#に例えるとどういう事ですか?
独り派遣で聞く人もおらず困っています
143デフォルトの名無しさん
2018/08/24(金) 12:53:09.08ID:ucGkXF3f なぜその方針を作った側の人に直接聞かないの
理解せずに間違ったことやったら最終的に叱られるのは君じゃないの?w
こういう人が2chで「コミュニケーションスキルガー」とか被害妄想全開で吠えてるんだろうなあ
理解せずに間違ったことやったら最終的に叱られるのは君じゃないの?w
こういう人が2chで「コミュニケーションスキルガー」とか被害妄想全開で吠えてるんだろうなあ
144デフォルトの名無しさん
2018/08/24(金) 12:54:55.58ID:/eex7TkL 2chとかいつの時代だよ
145デフォルトの名無しさん
2018/08/24(金) 13:47:23.02ID:7bl9vxOR 未来から来てる可能性だってあるじゃないか
146デフォルトの名無しさん
2018/08/24(金) 16:00:43.60ID:ILYVISJ2 状態を持たせずに純粋関数にした方が
バグが減って保守やテストがしやすいってことじゃろ
Mathクラスみたいに
バグが減って保守やテストがしやすいってことじゃろ
Mathクラスみたいに
147デフォルトの名無しさん
2018/08/24(金) 16:28:08.95ID:cHge5Sdm メソッドを全部staticにしたらいいんじゃね
もちろんstaticな変数は持たない
utilクラスみたいなもんだと思えば
もちろんstaticな変数は持たない
utilクラスみたいなもんだと思えば
148デフォルトの名無しさん
2018/08/24(金) 16:41:00.57ID:qtcVVPQQ それやるならstatic classってのがc#にはあったような
149デフォルトの名無しさん
2018/08/24(金) 17:06:07.87ID:7htaPF/P メソッドやクラスをstaticにしたところで他のクラスのインスタンスへの依存は防げないだろ
計算処理クラスなんてものが生み出されるようなレベルの現場だと、
ヘタにstatic強制なんかしたらstaticフィールドに状態持たせるバカが増えて余計に酷い状況になりそう
計算処理クラスなんてものが生み出されるようなレベルの現場だと、
ヘタにstatic強制なんかしたらstaticフィールドに状態持たせるバカが増えて余計に酷い状況になりそう
150デフォルトの名無しさん
2018/08/24(金) 17:54:49.70ID:g1+rhs2E151デフォルトの名無しさん
2018/08/24(金) 17:56:51.04ID:q0UJEScu Utilクラスってゴミ箱になりがちだから嫌いだわ。
計算処理クラスはなんとなく気持ちはわかるが。
delegateでは微妙に表現力が足りないから特定のinterface実装したクラスを受けるようにして、その引数と型を渡せばネットワーク上のどこかでインスタンスが起こされて実行されるようにした、みたいなケースじゃないの?
テストではないけど、ジョブスケジューラがdll名と引数をキューから拾って、appdomain切って動的にそのクラスを実装したdllを読み込んで実行してくれる、みたいなのは作ったことある。
計算処理クラスはなんとなく気持ちはわかるが。
delegateでは微妙に表現力が足りないから特定のinterface実装したクラスを受けるようにして、その引数と型を渡せばネットワーク上のどこかでインスタンスが起こされて実行されるようにした、みたいなケースじゃないの?
テストではないけど、ジョブスケジューラがdll名と引数をキューから拾って、appdomain切って動的にそのクラスを実装したdllを読み込んで実行してくれる、みたいなのは作ったことある。
152デフォルトの名無しさん
2018/08/24(金) 18:01:21.93ID:g1+rhs2E153デフォルトの名無しさん
2018/08/24(金) 18:44:47.51ID:h3eX92xO154デフォルトの名無しさん
2018/08/24(金) 19:20:46.35ID:s18ZTF9u >>150
マジで底辺のリーダーってこんなんがほとんどなの?こええ
マジで底辺のリーダーってこんなんがほとんどなの?こええ
155デフォルトの名無しさん
2018/08/24(金) 19:36:31.86ID:n2aXOJxU staticなナントカUtilクラスはJavaドカが好むよねー
staticなのに内部でインフラ異存しまくっててキレそうになるよ
staticなのに内部でインフラ異存しまくっててキレそうになるよ
156デフォルトの名無しさん
2018/08/24(金) 22:32:41.02ID:KbP5R+D4 失礼します。
ASP.NET MVC又はASP.NET MVC CoreのRazorビューから匿名型がサポートされない理由を説明してくださる方居ますか?
ASP.NET MVC又はASP.NET MVC CoreのRazorビューから匿名型がサポートされない理由を説明してくださる方居ますか?
157デフォルトの名無しさん
2018/08/24(金) 22:36:20.82ID:usF07bpd158デフォルトの名無しさん
2018/08/25(土) 00:04:54.82ID:K7SavMc/ >>157
はい。
.frameworkがpoorなのでサポート出来ない事が私には理解できません。
こちらのurlの記事では普通にプロパティで取得出来ているように見えますが…
http://architect-wat.hatenablog.jp/entry/20130501/1367415654
はい。
.frameworkがpoorなのでサポート出来ない事が私には理解できません。
こちらのurlの記事では普通にプロパティで取得出来ているように見えますが…
http://architect-wat.hatenablog.jp/entry/20130501/1367415654
159デフォルトの名無しさん
2018/08/25(土) 09:58:42.90ID:uF3Ar+0r >>158
匿名型なんて使わなきゃいい
匿名型なんて使わなきゃいい
160デフォルトの名無しさん
2018/08/25(土) 19:34:07.64ID:ZJ6IWHAy c#アプリって簡単に逆コンパイルで簡単にソース見れちゃうじゃん?
例えばAPIキーとかハードコーディングしてもしてなくても抜き出せてしまうけどどうすんの?
例えばAPIキーとかハードコーディングしてもしてなくても抜き出せてしまうけどどうすんの?
161デフォルトの名無しさん
2018/08/25(土) 19:41:36.20ID:ajbZjNWE >>160
リバースエンジニアリングはどのくらいの労力がかかるかだけの違いで解析できないものなんかないから諦めろ
リバースエンジニアリングはどのくらいの労力がかかるかだけの違いで解析できないものなんかないから諦めろ
162デフォルトの名無しさん
2018/08/25(土) 19:57:01.93ID:Z58Bgt4H >>160
ハッシュ値使うねん
ハッシュ値使うねん
163デフォルトの名無しさん
2018/08/25(土) 20:08:24.14ID:6fvgv2wi >>162
ハッシュからAPIキーは復元できないでしょ
ハッシュからAPIキーは復元できないでしょ
164デフォルトの名無しさん
2018/08/25(土) 20:21:29.85ID:nj06+sqx >>160
環境変数
環境変数
165デフォルトの名無しさん
2018/08/25(土) 20:50:49.58ID:J4BiRy9W 200週くらい周回遅れの話題だ
166デフォルトの名無しさん
2018/08/25(土) 21:51:49.34ID:uGtRYhlb >>163
間接的に別なのから取得するとか
間接的に別なのから取得するとか
167デフォルトの名無しさん
2018/08/25(土) 21:53:27.00ID:Y3DnwOBx168デフォルトの名無しさん
2018/08/25(土) 21:53:40.13ID:Y3DnwOBx >>166
どういうこと?
どういうこと?
169デフォルトの名無しさん
2018/08/26(日) 09:06:38.21ID:mvt+Dc+2170デフォルトの名無しさん
2018/08/26(日) 09:44:13.36ID:O9adGcKd171デフォルトの名無しさん
2018/08/26(日) 12:36:40.81ID:KYhaaDP0172デフォルトの名無しさん
2018/08/26(日) 12:41:52.49ID:d3emHXQQ >>170
サーバーから貰うときの認証は?
サーバーから貰うときの認証は?
173デフォルトの名無しさん
2018/08/26(日) 12:45:24.17ID:MAg8NxfR >>172
認証のパスワードなどの手続を登録した人に別途配布
認証のパスワードなどの手続を登録した人に別途配布
174デフォルトの名無しさん
2018/08/26(日) 12:48:09.71ID:mLZLsxB6 サーバーから受け取るようにしたとしてもクライアントが丸見えなら同じ方法でサーバーからキー抜けるだろ
ちゃんとやるなら、開発者だけが知ってる秘密鍵でシリアルキー作ってクライアントごとに払い出すようにする
そしてサーバー側でシリアルキーに基づいてクライアントを識別し、クライアント単位でクォータや権限の制御をする
漏れる前提で他のクライアントに影響が出ないように設計するのが基本的な戦略だよ
ちゃんとやるなら、開発者だけが知ってる秘密鍵でシリアルキー作ってクライアントごとに払い出すようにする
そしてサーバー側でシリアルキーに基づいてクライアントを識別し、クライアント単位でクォータや権限の制御をする
漏れる前提で他のクライアントに影響が出ないように設計するのが基本的な戦略だよ
175デフォルトの名無しさん
2018/08/26(日) 12:55:18.75ID:IHY0+SV3 どうでもいいけど、もともとの質問の趣旨は
ネイティブコードと同程度の秘匿性でバイナリにデータを隠せるかじゃないの?
それは無理、で終わりだと思うけど。
ネイティブコードと同程度の秘匿性でバイナリにデータを隠せるかじゃないの?
それは無理、で終わりだと思うけど。
176デフォルトの名無しさん
2018/08/26(日) 12:56:47.03ID:g9QDbTAC APIキーって5chのAPIみたいなの想像してたけど違うの?
それだとクライアント毎に払い出しても誰か一人のがばれたら使用権貰えちゃうけど
それだとクライアント毎に払い出しても誰か一人のがばれたら使用権貰えちゃうけど
177デフォルトの名無しさん
2018/08/26(日) 12:57:13.81ID:mLZLsxB6 >>175
APIキーを抜くくらいならネイティブでも難しくないよ
APIキーを抜くくらいならネイティブでも難しくないよ
178デフォルトの名無しさん
2018/08/26(日) 13:13:33.45ID:mLZLsxB6 >>176
それで困るのは5chではなくブラウザの開発者だろ?
5chにとっては、特定のクライアント(この場合は開発者単位な)からの不正な大量投稿があれば、
そのクライアント(開発者)を丸ごとBANしてしまえばいい。他のクライアント(開発者)には影響しない。それを防ぐ責任はあくまでクライアントの開発者にある。
ユーザー単位で払い出すにしろ開発者単位て払い出すにしろ、個別に払い出すことで責任をAPIキーを払い出された側に転嫁できるんだよ。
それで困るのは5chではなくブラウザの開発者だろ?
5chにとっては、特定のクライアント(この場合は開発者単位な)からの不正な大量投稿があれば、
そのクライアント(開発者)を丸ごとBANしてしまえばいい。他のクライアント(開発者)には影響しない。それを防ぐ責任はあくまでクライアントの開発者にある。
ユーザー単位で払い出すにしろ開発者単位て払い出すにしろ、個別に払い出すことで責任をAPIキーを払い出された側に転嫁できるんだよ。
179デフォルトの名無しさん
2018/08/26(日) 13:14:28.64ID:fHWcXfSA >>178
なるほど
なるほど
180デフォルトの名無しさん
2018/08/26(日) 13:22:20.16ID:KYhaaDP0 ソースコード丸見えだから、APIキーがどこにあるかわかるよね
そうやって海賊版作れてしまうわけだ
そうやって海賊版作れてしまうわけだ
181デフォルトの名無しさん
2018/08/26(日) 14:46:35.94ID:VBsyc88B 流石にAPIキーを普通に文字列で書くアホはnativeでも居ないだろ。
難読化する。
ソースコードが丸見えだとしても問題無い気はする。どーせnativeでも逆アセンブルするんだし。
カジュアルな対策なら、c#には逆コンパイルされないILコード使って復号ロジック書くべきかと思うな。
ちゃんとやるならドングルかライセンスサーバのどっちかじゃねえかな。
難読化する。
ソースコードが丸見えだとしても問題無い気はする。どーせnativeでも逆アセンブルするんだし。
カジュアルな対策なら、c#には逆コンパイルされないILコード使って復号ロジック書くべきかと思うな。
ちゃんとやるならドングルかライセンスサーバのどっちかじゃねえかな。
182デフォルトの名無しさん
2018/08/26(日) 16:44:19.57ID:Aux3ZmsD nativeと同程度の隠匿で良いならそこだけnativeにすれば良いだけやん
183デフォルトの名無しさん
2018/08/26(日) 16:46:40.21ID:UH8BRHfz oauthのキーなら速攻でばれるし文字列でそのまま書くな。難読かしても意味ねぇし。やるだけ無駄。
184デフォルトの名無しさん
2018/08/26(日) 16:48:17.70ID:7VY92v0a DBのパスワードとかソースに直書きしてるわ
ハッシュにしてもどこで復号すればいいのか
ハッシュにしてもどこで復号すればいいのか
185デフォルトの名無しさん
2018/08/26(日) 17:33:04.42ID:Lq+jppE1 自前でやるだけのセキュリティのスキルがあるとこは珍しい
素直にASP.NET Identity + IdentityServerでOIDC使っとくのが懸命な判断
素直にASP.NET Identity + IdentityServerでOIDC使っとくのが懸命な判断
186デフォルトの名無しさん
2018/08/26(日) 17:45:57.13ID:6lhNHki6 こういう大事な部分を手軽で強固なセキュリティとしてなんでMSは用意しておかないんだ?
187デフォルトの名無しさん
2018/08/26(日) 17:47:36.13ID:vKa62JvF はい意味不明
OIDCってアプリ側がユーザーの認証認可をする仕組みだぞ?
それをどうクライアントアプリのAPIキーの隠蔽に使うのか教えてくれ
OIDCってアプリ側がユーザーの認証認可をする仕組みだぞ?
それをどうクライアントアプリのAPIキーの隠蔽に使うのか教えてくれ
188デフォルトの名無しさん
2018/08/26(日) 17:47:37.20ID:86UvKUWS >>186
もうすでにC#関係なくなっているが手軽で強固なやり方ってどんなことよ?
もうすでにC#関係なくなっているが手軽で強固なやり方ってどんなことよ?
189デフォルトの名無しさん
2018/08/26(日) 17:49:20.77ID:vKa62JvF190デフォルトの名無しさん
2018/08/26(日) 17:49:59.20ID:6lhNHki6 まあそれよりもソースを復元できるのが問題だわな
191デフォルトの名無しさん
2018/08/26(日) 17:50:52.91ID:O9adGcKd192デフォルトの名無しさん
2018/08/26(日) 17:51:50.11ID:86UvKUWS >>190
中間言語形式だけでなくスクリプト言語も否定する気かw
中間言語形式だけでなくスクリプト言語も否定する気かw
193デフォルトの名無しさん
2018/08/26(日) 17:54:18.49ID:Lq+jppE1 >>187
チュートリアルもやったことないのかよ…
チュートリアルもやったことないのかよ…
194デフォルトの名無しさん
2018/08/26(日) 17:56:14.36ID:vKa62JvF195デフォルトの名無しさん
2018/08/26(日) 17:57:02.40ID:6lhNHki6 >>192
サーバー型はビジネスロジックがサーバー内にあるからそこで防げるけど、c#アプリは無理じゃん
サーバー型はビジネスロジックがサーバー内にあるからそこで防げるけど、c#アプリは無理じゃん
196デフォルトの名無しさん
2018/08/26(日) 18:00:17.07ID:O9adGcKd197デフォルトの名無しさん
2018/08/26(日) 18:02:46.79ID:6lhNHki6 >>196
UWPじゃなくFormアプリでおねがい
UWPじゃなくFormアプリでおねがい
198デフォルトの名無しさん
2018/08/26(日) 18:04:53.73ID:vKa62JvF >>196
これユーザーが入力した認証情報を安全に保持するのと、サーバー側のリソースに関するユーザーの認証認可をする話だよね
開発者の機密情報を安全にクライアントに持たせるのとは全く別の問題だよ(そしてそれは原理的に不可能)
これユーザーが入力した認証情報を安全に保持するのと、サーバー側のリソースに関するユーザーの認証認可をする話だよね
開発者の機密情報を安全にクライアントに持たせるのとは全く別の問題だよ(そしてそれは原理的に不可能)
199198
2018/08/26(日) 18:15:55.92ID:vKa62JvF もちろんクライアント側で復号する必要がなくて、単にデータストアをクライアント側に置きたいだけなら、サーバー側で暗号化すればいいだけだよ
原理的に不可能なのはクライアント側でも機密情報を復号して使う必要がある場合の話ね
原理的に不可能なのはクライアント側でも機密情報を復号して使う必要がある場合の話ね
200デフォルトの名無しさん
2018/08/26(日) 18:22:46.80ID:wR7TFJf0 こんな解説しないと分からないってのが信じられん
201デフォルトの名無しさん
2018/08/26(日) 18:40:28.29ID:O9adGcKd >>198
だから「それなり」って書いてあるだろ
だから「それなり」って書いてあるだろ
202デフォルトの名無しさん
2018/08/26(日) 23:06:54.05ID:BDbiNYg/ 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に対する型オーナーが無効です。
と怒られます。
}
}
戻り値を抽象的に表現できれば、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に対する型オーナーが無効です。
と怒られます。
}
}
203デフォルトの名無しさん
2018/08/26(日) 23:10:18.71ID:iDr2keD8 >>202
いやSQLを隠蔽するのがDAOなのにSQL渡したらダメだろ…
いやSQLを隠蔽するのがDAOなのにSQL渡したらダメだろ…
204デフォルトの名無しさん
2018/08/26(日) 23:12:59.95ID:hANAm2gW ようするにdaoなんか使わずに
odbc使いなさいということ
odbc使いなさいということ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 寝癖ってどうしたらつかなくなるんや?
- 自閉症が「んなっしょい」と連呼するお🏡
- 【画像】エロい一般漫画はなぜこんなに抜けるのか
- BTSのバラエティ面白すぎワロタ
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
